💨
{}, object, unknown, Record<string, unknown>
まとめ
値の種類 | unknown |
{} |
object |
Record<string, unknown> |
---|---|---|---|---|
オブジェクト (レコード) | ✅ | ✅ | ✅ | ✅ |
オブジェクト (レコード以外) | ✅ | ✅ | ✅ | ❌ |
プリミティブ | ✅ | ✅ | ❌ | ❌ |
null |
✅ | ❌ | ❌ | ❌ |
undefined |
✅ | ❌ | ❌ | ❌ |
整理すると理解が進みますね。
確認用コード
let v1: {};
v1 = 100
v1 = true
v1 = "hello"
v1 = { a: 1 }
v1 = [1]
v1 = null // 型エラー
v1 = undefined // 型エラー
let v2: object;
v2 = 100 // 型エラー
v2 = true // 型エラー
v2 = "hello" // 型エラー
v2 = { a: 1 }
v2 = [1]
v2 = null // 型エラー
v2 = undefined // 型エラー
let v3: unknown;
v3 = 100
v3 = true
v3 = "hello"
v3 = { a: 1 }
v3 = [1]
v3 = null
v3 = undefined
let v4: Record<string, unknown>;
v4 = 100 // 型エラー
v4 = true // 型エラー
v4 = "hello" // 型エラー
v4 = { a: 1 }
v4 = [1] // 型エラー
v4 = null // 型エラー
v4 = undefined // 型エラー
Discussion