LoginSignup
0
2

More than 3 years have passed since last update.

TypeScript: 組み込み型関数一覧

Last updated at Posted at 2020-09-21

使いがちな組み込み型メモ
Utility Types より

型の 抽出 / 除外

Extract<T, U>

T から選択された型を抽出した型を構築する

Extract<string | number, string> // -> string

Exclude<T, U>

Extract の逆
T から選択された型を除いた型を構築する

Exclude<string | number, string> // -> number

NonNullable<T>

T から null, undefined を除いた型を構築する

NonNullable<string | number | null | undefined> // -> string | number

オブジェクト系

Record<K, T>

K を key、T を value としたオブジェクト型を構築する

Record<string, number> // -> { [key: string]: number; }
Record<string | number, string | number> // -> { [key: string]: string | number; [key: number]: string | number; }

Record<"foo" | "bar", string> // -> { foo: string; bar: string; }

Pick<T, K>

T から選択されたプロパティのみの型を構築する

Pick<{foo: string, bar: number}, "foo"> // -> { foo: string; }

Omit<T, K>

Pick の逆
T から選択されたプロパティを除いた型を構築する

Omit<{foo: string, bar: number}, "foo"> // -> { bar: string; }

プロパティ系

Partial<T>

全てのプロパティをオプションにする

Partial<{ foo: string; bar: number }> // -> { foo?: string; bar?: number; }

Required<T>

全てのプロパティを必須にする

Required<{ foo?: string; bar?: number }> // -> { foo: string; bar: number; }

Readonly<T>

全てのプロパティを readonly にする

Readonly<{ foo: string; bar: number }> // -> { readonly foo: string; readonly bar: number; }

関数

ReturnType<T>

関数型の戻り値の型を構築する

ReturnType<() => void> // -> void
ReturnType<() => string> // -> string

const foo = () => "Hello";
ReturnType<typeof foo> // -> string

Parameters<T> / ConstructorParameters<T>

関数型 / クラス の引数の型のタプルを構築する

Parameters<() => void> // -> []
Parameters<(foo: string, bar: number) => void> // -> [string, number]
Parameters<(foo: { bar: number }) => void> // -> [{ bar: number; }]
Parameters<({ bar }: { bar: number }) => void> // -> [{ bar: number; }]

class Foo {
  constructor(foo: string, bar: number) {}
}
ConstructorParameters<typeof Foo> // -> [string, number]
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2