TypeScript unknown の値からプロパティへアクセスするまで

unknown 型の値に対してプロパティアクセスするとエラーになるのでそれを防止する方法です。

Record<string, unknown> 型ガードを使ってとして挙げることでこれを回避します。

const isNotNullable = (v: unknown): v is Record<string, unknown> => {
  return v !== null && v !== undefined
}

isNotNullable が true なら、引数に渡した v は Record<string, unknown> になるので、v.name のようにアクセスしてもエラーになりません。