0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】TypeScriptキャッチアップ中に曖昧だった基本の型をメモ

0
Posted at

TypeScriptで実装しているときに取ったメモも備忘録として残しておきます。
型の曖昧だった部分を中心にメモを取っており、確かに忘れやすいので今後も読んで復習します。

型推論

TypeScriptには型推論があるため、すべての変数に明示的な型指定が必要なわけではない。

たとえばconst count = 1と書くと、countはnumber型として推論される。型が分かりにくい場所や、関数の引数・戻り値などで型指定を足していく。

基本的な型

プリミティブ型

JavaScriptにもある、シンプルな値の型。

  • number
  • string
  • boolean
  • null
  • undefined
  • bigint
  • symbol

オブジェクト型

プロパティを持つ、複雑な構造の型。

オブジェクト、配列、クラスのインスタンス、関数などが入る。objectはプリミティブ型以外を表す型だが、実際にはプロパティを指定したオブジェクト型や、type、interfaceを使うことが多い。

ユニオン型

複数の型のどれかを許容したいときに使う。型と型の間を|でつなぐ。

let input: string | number;

input = 'hello';
input = 42;

string | numberの場合、どちらの型でも使える操作しかできない。文字列用のメソッドを使いたいときは、あとで型ガードして絞り込む。

型エイリアス

よく使う型に名前を付けて、再利用できるようにする機能。

type User = {
  name: string;
  age: number;
};

const user: User = { name: 'Eve', age: 22 };

オブジェクトの形を何度も書かずに済む。APIのレスポンスやpropsの型にも使える。

ジェネリクス

「あとで決まる型」を扱うための機能。

<T>で型変数を定義する。TはTypeの頭文字としてよく使われるが、U、K、Vなど、意味が分かる名前なら何でもよい。

function echo<T>(value: T): T {
  return value;
}

echo('hello'); // string型
echo(123); // number型
echo(true); // boolean型

引数で受け取った型と、戻り値の型を同じにしたいときに便利。

型ガード

値がどの型なのかを、コードの中で判断して型を絞り込む方法。ユニオン型を扱うときによく使う。

  • typeof:stringやnumberなど、プリミティブ型を確認する
  • instanceof:特定のクラスのインスタンスかを確認する
  • in:オブジェクトに特定のプロパティがあるかを確認する
  • カスタム型ガード関数:value is 型の形で、型ガードであることを定義する

typeof input === 'string'のように確認すると、その分岐の中ではinputをstring型として扱える。

ユーティリティ型

TypeScriptが最初から用意している、既存の型を加工するための型。

型名 説明 よくある用途
Partial<T> Tのすべてのプロパティをオプショナルにする 一部だけ更新したいとき
Required<T> Tのすべてのプロパティを必須にする 必須項目が揃ったデータを扱うとき
Readonly<T> Tのプロパティを読み取り専用にする 書き換え禁止の設定など
Pick<T, K> Tから指定したプロパティだけ取り出す 必要な項目だけ使いたいとき
Omit<T, K> Tから指定したプロパティを除外する 特定の項目を除きたいとき
Record<K, T> Kのキーに対してT型の値を持つオブジェクトを作る 決まったキーと型のオブジェクトを作るとき

参考:
サバイバルTypeScript

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?