[TypeScript] 3.3¶
TypeScript3.3のリリース内容まとめ
Improved behavior for calling union types¶
NOT NECESSARY EASY
異なるUnion型に共通で所属する型を渡したとき、正しく推論されるようになった。
type Fruit = "apple" | "orange";
type Color = "red" | "orange";
type FruitEater = (fruit: Fruit) => number;
type ColorConsumer = (color: Color) => string;
declare let f: FruitEater | ColorConsumer;
// FruitEater と ColorConsumer の両方に属する"orange"を渡せば number | string と推論されるはず..
f("orange");
// だが互換性がないとエラーになる
// -> error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'FruitEater | ColorConsumer' has no compatible call signatures.
type Fruit = "apple" | "orange";
type Color = "red" | "orange";
type FruitEater = (fruit: Fruit) => number;
type ColorConsumer = (color: Color) => string;
declare let f: FruitEater | ColorConsumer;
// FruitEater と ColorConsumer の両方に属する"orange"を渡せば string | number と推論されるはず..
f("orange");
// エラーにはならず string | number に推論される
Fruit
とColor
が以下のケースでも同様の挙動を観測できる。
type Fruit = 1 | string;
type Color = 2 | string;
Incremental file watching for composite projects in --build --watch¶
HAD BETTER EASY
Project Referencesで使用する--build
と一緒に--watch
が機能するようになった。
これまでは2つのフラグを指定しても--watch
による差分ビルドは機能していなかった。
v3.3からそれに対応し、およそ50%~75%のビルド時間削減効果が出ている。