TypeScript

TypeScriptでは変数に再割り当てすると、型が拡大されて推論されます。

どういうことか見てみましょう。

const a = 'x'//aの型は'x'let b = a//bの型は ...

TypeScript

TypeScriptのenumは落とし穴がいくつかあり、利用することを控えた方が良いとされていますが、今回は逆引きについてです。

例です。

enum MyEnum { 'Hoge', 'Foo ...

TypeScript

enum の場合、JavaScriptに変換されると以下のような少し理解しづらいオブジェクトになります。

enum MyEnum { 'Hoge', 'Foo', 'Bar'}co ...

TypeScript

tsconfig.jsonの設定が反映されない問題が発生したのですが、理由はtscコマンドにコンパイル対象のファイルを指定していたためでした。

以下のような場合、tsconfig.jsonは無視されます。

tsc i ...

TypeScript

例えば以下のような配列があり、

この配列の要素のいずれかを引数に受け取る関数を定義したいとします。

const f1 = (value: V) => {//do something}

Vの型の定義は以下にな ...

TypeScript

配列に要素を追加するような型を定義します。

type Push<T extends unknown

使い方。

type T1 = Push<, 3>//type T2 = Push<, ' ...

TypeScript

配列の中に、指定した値があれば true、そうでない場合はfalseを返す型です。

type Includes<T extends readonly any ? true : false

TypeScript

二つの配列の型を足したConcat型を定義します。

type Concat<T extends unknown> =

TとUは、どちらも配列型と互換性があることがポイントです。

TypeScript

3つのジェネリクス(C、T、F)を受け取り、CがtrueならTを、falseならFを返す。

type If<C extends boolean, T, F> = C extends true ? T : F

Cは ...

TypeScript

Promise<string>であれば、string を返すような型を考える。

inferを使うことで可能です。

type Await<T> = T extends Promise<infer ...