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 ...

TypeScript

Excludeは以下のように実装されています。

type MyExclude<T, U> = T extends U ? never : T

これを使ってみると

type T1 = MyExclude< ...

TypeScript

配列の最後の要素の型を取得する方法です。

type Last<T extends any ? U : nevertype T1 = Last<>//numbertype T2 = Last<>//n ...

TypeScript

であれば string を、 であれば boolean を返すような型を作ります。

はじめに思いついたのが以下です。

type First<T extends any

とてもシンプルなのですがひとつ問題が ...

TypeScript

配列の中の要素の型を取得する場合はT1のようにします。

以下が例です。

type T1 = Array<string>type T2 = T1//T2 は stringtype T3 = Array< ...

TypeScript

指定したキーを削除した型を返したい場合はOmitを使います。

type User = { firstName: string lastName: string age: number}type T1 = Omit<User ...

TypeScript

Variadic tuple typesを使用したサンプルです。TypeScript4.0以降にする必要があります。

例えば、任意のstringを受け取るが、最後の引数だけはnumberを受け取る関数を定義してみます。

TypeScript

booleanが期待されるところで、boolean以外の型が指定された場合に、strict-boolean-expressions が発生します。

githubにもありますように、サンプルとして以下のようなコードがあります ...

TypeScript

TypeScriptを使って書きました。

わざわざDrawCircleの型を定義しているのは、drawCircle関数からできるだけ型の情報をなくして読むときのノイズを減らすためです。

type Circle = { ...