Open2

逆引き: TypeScript

ヒカルヒカル

配列の値をストリングリテラルとして使う方法

// 定義方法
const size = [`SMALL`, `MEDIUM`, `LARGE`] as const;
type Size = typeof size[number]; // `SMALL` | `MEDIUM` | `LARGE`

// 使い方
const hoge1: Size = `LITTLE`; // コンパイルエラー
const hoge2: Size = `SMALL`; // コンパイルOK

※ TypeScript 3.4 で導入された const assertion を使用している

ヒカルヒカル

ジェネリクス型で new する方法

function create<T>(ctor: { new(): T }) {
    return new ctor();
}

const myClass = create(MyClass);