Edited at

TypeScript 2.5.2 更新点

More than 1 year has passed since last update.

こんにちは@vvakameです。

今回は薄味更新という感じですね。

TypeScript 2.5.2がアナウンスされましたね。

What's new in TypeScriptも更新されているようです。

わかめさんも久々にPR送ったりしました。


変更点まとめ


try-catchの例外のキャプチャが省略できるようになった

今Stage3のやつ

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を適用するとこうなる。