TypeScriptのanyとunknownの違いを簡潔に
anyとunknownにはどんな値も代入できます。これは同じです。
以下はどちらもコンパイルエラーになりません。
let a: any = 100;
let c: unknown = 100;
anyとunknownの違いはその変数を使うときにあります。
anyはどのような操作を行うことも可能ですが、unknownは型チェックをしないと操作できません。
以下の4行目では、c に 100 を加算しているので、 c は number であることを期待されますが、c は unknown なのでコンパイルエラーになります。
let a: any = 100;
let b = a + 100;
let c: unknown = 100;
let d = c + 100; //コンパイルエラーになる
以下のように型チェックをすることで unknown でも操作できるようになります。
let c: unknown = 100;
if(typeof c === 'number'){
let d = c + 100;
}
最近のコメント