@spring-rainingが、@uhyo_にTypeScript 4.7 Betaでの変更点や4/22に発売されるTypeScriptの本について聞いてみました。
TypeScript 4.7 Beta
- Announcing TypeScript 4.7 Beta:
- Node.js向けESMサポート
compilerOptions.module
にnode12
やnodenext
を指定することで使用可能package.json
中のexports
(Conditional exports) などのNode.jsの新しい機能に対応
- Computed propertyによるコントロールフロー分析
- Computed property (
obj[key]
) でアクセスしたときの型の絞り込みが考慮される
- Computed property (
- ObjectとArray内にあるFunction型の推論強化
declare function f<T>(arg: {
produce: (n: string) => T,
consume: (x: T) => void }
): void;
// Tの評価が関数の中身を推論するまで遅延され、以下のコードが動くようになる
f({
produce: n => n,
consume: x => x.toLowerCase(),
});
- インスタンス化式/具体化式 (Instantiation Expression)
- ここで言う「Instantiation」はいわゆる日本語の「インスタンス」とは違うので注意
const ErrorMap = Map<string, Error>;
const errorMap = new ErrorMap(); // → Map<string, Error>
infer
とextends
の組み合わせが可能に- 型パラメータの変位 (Variance)
out T
: 共変 (covariant)in T
: 反変 (contvariant)in out T
: 非変 (invariant)- TypeScriptの内部的には既に変位の機能は使われており、可読性や速度向上のために明示的にアノテーションできるようになった
- ClassのPrivate field (
#private
) にtypeof
を使うことが可能に - ファイル名のSuffixを使ったモジュール解決オプション (
moduleSuffixes
)- TypeScriptのmoduleSuffixesについて考えて納得した:
- importの解決方法を決める
resolution-mode
- importのソートをグループ単位で実行
- import文を空行で区切ることでソートしたときの順番を制御できる
- Object Method Snippet Completions
本が出ます
- 「プロを目指す人のためのTypeScript入門」
- 初心者がプロとしてTypeScriptを使えるようになるところまでサポート
- 本の執筆について
Refs
- LINE 新卒採用 2023 -https://linecorp.com/ja/career/newgrads/engineering/
- キャリア採用はこちらから
- BGM&SE
- 魔王魂/騒音のない世界/OtoLogic