TypeScript

以下のような配列はタプル としてではなく、配列として型推論されます。

let a = //a は (number | boolean) を推論したい場合、レストパラーメータを活用する方法があります。

function tu ...

TypeScript

{}という型は一見すると空のオブジェクトを指すように見えますが、これはnull以外のすべての型を意味します。

Object型も同様です。

これは非常に誤解を生みやすく、落とし穴であるため、使用しないことが強く勧 ...

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は、どちらも配列型と互換性があることがポイントです。