Open2
TypeScriptの挙動メモ
ネストされたユニオンにはnarrowingが働かない
type UnionValue = {
value: string | number;
};
type StringValue = {
value: string;
};
const useUnion = (union: UnionValue) => {
if (typeof union.value === "string") {
// union.valueはstring型にnarrowingされる
// unionはUnionValueのまま
useString(union); // 型エラー
}
};
const useString = (string: StringValue) => {};
TypeScriptのパフォーマンスに関する公式の情報
interfaceのほうがtypeよりパフォーマンス上の利点があるなど重要な情報が載っている