noUncheckedIndexedAccess
以下2つに対して、undefiendのチェックを強制する
配列のindex access
code:ts
type Hoge = {
speed: 'fast' | 'medium' | 'slow';
};
const hoge: Hoge = {
speed: 'fast',
piyo: 'sss',
};
const speed = hoge.speed; // string
const piyo = hoge'piyo'; // string|undefined. 実際はstring const fuga = hoge'fuga'; // string|undefined. 実際はundefined code:ts
const piyo = hoge.piyo; // string|undefined. 実際はstring
index accessの例
code:ts
const _1 = hoge1; // number|undefined. 実際はnumber const _3 = hoge3; // number|undefined. 実際はundefined ちなみにtupleなら|undefinedにはならない
code:ts
const _3 = hoge3; // error if(hoge.length > 0)を確認した時に、
hoge[0]を、T|undefiendではなく、Tにしてほしい
しかし、これは以下のようなコーナーケースが存在するため安全でないので無理
code:ts
let arr: number[] = [];
console.log(arr.length); // 2。 なので arr.length>0 は true
console.log(arr0); // undefined 参考