こんにちは@vvakameです。
今回は薄味更新という感じですね。
TypeScript 2.5.2がアナウンスされましたね。
What's new in TypeScriptも更新されているようです。
わかめさんも久々にPR送ったりしました。
変更点まとめ
- try-catchの例外のキャプチャが省略できるようになった Optional catch binding
-
try { ... } catch { ... }
がvalidに(es仕様に準拠
-
- jsに対してコメントによる型注釈・キャストのサポートを追加 Assertion/cast JSDoc syntax in checkJs mode
- より賢いpackage解決 For duplicate source files of the same package, make one redirect to the other
- package.jsonのnameとversionを見るようになった
- 参照先packageがsymlinkだった場合realpathではなく指定したパスにファイルが存在するように振る舞う Add "preserveSymlinks" option
- Node.jsの--preserve-symlinksと一緒
- 関数の切り出しとメソッドの切り出しのリファクタリングの追加 Refactoring to extract functions & methods
- JSDocスタイルの型注釈を書いてしまった時にTypeScriptの型注釈に変換するQuick Fixの追加 correct references to types of properties
- ある型のプロパティの型の参照はインデックスアクセスの形式しか許されていないが、ドットアクセスで書いてしまった時に変換するQuick Fixの追加 correct uses of JSDoc types to TypeScript types
try-catchの例外のキャプチャが省略できるようになった
try {
JSON.parse("あかんやつ");
} catch {
console.error("あかんかった…");
}
jsに対してコメントによる型注釈・キャストのサポートを追加
わかめさんは余り興味ないやつですね
// @ts-check
const a = /** @type {string[]} */ ([]);
a.push("a");
// error TS2345: Argument of type '1' is not assignable to parameter of type 'string'.
a.push(1);
より賢いpackage解決
Nodeモジュールとしてnode_modules配下に同じパッケージ同じバージョンへの参照がある場合、複数回処理せず過去に処理済みのものへのリダイレクトとして扱われるようになる。
これによりメモリ効率や処理速度の向上とprivateなフィールドについて期待通り互換性のあるものとして扱われるようになる。
参照先packageがsymlinkだった場合realpathではなく指定したパスにファイルが存在するように振る舞う
Node.jsの同名のオプションと同じふるまいなのでそっち見てくれ だそうです。
Webpackの resolve.symlinks
と真偽値が逆なので注意な!らしいです。
関数の切り出しとメソッドの切り出しのリファクタリングの追加
そのまんまです。公式のgif動画見てもらえばいいと思います。
この機能は次のVSCodeのアップデートで使えるようになるそうな。
PRのdescriptionにRyanが画像作って貼ってるんだけど雑な矢印が描かれていて味がある。
JSDocスタイルの型注釈を書いてしまった時にTypeScriptの型注釈に変換するQuick Fixの追加
let foo: *;
let bar: number?;
こういうのを書くと
let foo: any;
let bar: number | null; // or number | null | undefined;
に修正できます。
ある型のプロパティの型の参照はインデックスアクセスの形式しか許されていないが、ドットアクセスで書いてしまった時に変換するQuick Fixの追加
長い。
interface Foo {
value: string;
}
let fooValue: Foo.value;
こういうコードを書くとエラーになる。
interface Foo {
value: string;
}
let fooValue: Foo["value"];
Quick fixを適用するとこうなる。