TypeScriptのunknown型
1
3.0から入ったunknown
型がある
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html
というかunknown
型が入ったこともあってmajor versionが上がったという認識をしている
2
コードベース中にJSON.parse
をanyで受けているところをunknownにしてみるか〜と思って試したがうまくいかなかった
function main(x: unknown): string { if (typeof x !== 'object') { throw new Error('x'); } if (x === null) { throw new Error('x'); } // この時点でxが{}まで絞れる // (1) typeof x.y typeof x["y"] // (2) // if ('y' in x) { // x.y // } }
結局 1, 2で詰んでしまう。
まだtypeのnarrowがうまく効かなくて、issueはある状態。
自分の期待しうるunknown
にはまだ遠くてJSON.parse
の返り値に使うのは、真面目に書こうとする限り厳しいなぁという気持ち。