😎
【TS】unknown型ってなんじゃい!
unknown型
- anyと同様にどんな型でも代入できる
-
unknown
型に代入されたプロパティやメソッドは使用できない
プロパティやメソッドは使用できない例
const any6: unknown = {
x: 0,
y: 1,
name: "origin",
};
console.log(any6.name); // Object is of type 'unknown'
any型との比較
any型は、unknownとは違いプロパティやメソッドを使用できるが、any型の使用 = TypeScriptが型のチェックを放棄した型
となるので、Typescriptの利点を活かしきれていない。
さらに、型チェックの放棄によりコンパイル時にエラーに気づけず、リリース後に不具合が見つかるなどの問題が発生する可能性が高くなる。
つまり、不完全なプログラムになってしまう。
一方、unknown型は、プロパティ、メソッドへのアクセスを行われないため、実行することができず、意図しないランタイム時のエラーを防止できる。
Discussion