TypeScript の配列の要素に対する型推論
昨日の記事の回答です。
配列の要素を参照している場合、その要素は動的に変更することができます。
以下の例の場合、arr[index]はその時点ではundefinedだったとしても、その後に代入されたりして値を変更可能ということです。
type T1 = (number | undefined)[]
const myFunc = (arr: T1, index: number) => {
if (arr[index] === undefined) {
return []; // never[]
}
const temp = arr[index]; //number | undefined
return temp;
}
つまり、以下のように、temp に代入する前に、arr[index] が他の値になる可能性があるということです。
type T1 = (number | undefined)[]
const myFunc = (arr: T1, index: number) => {
if (arr[index] === undefined) {
return []; // never[]
}
arr[index] = undefined // こういったことが可能なので、TypeScriptは arr[index]をnumberだとは推論しない
const temp = arr[index]; //number | undefined
return temp;
}
最近のコメント