The NoInfer Utility Type

TL;DR

配列に含まれる値を示す型 NoInfer が追加された。

type T1 = "red" | "green" | "blue";
type T2 = NoInfer<T1>;

const v2: T2 = "blue";

Example

公式ドキュメントでは関数のシグネチャの利用例が示される。

function f1<T extends string>(colors: T[], defaultColor: NoInfer<T>) {}

f1(["R", "G", "B"], "R"); // OK
f1(["R", "G", "B"], "orange"); // Error

extendsの記述に比べてシンプルで読みやすくなる。

function f2<T extends string, T2 extends T>(colors: T[], defaultColor: T2) {}

Last updated