🍟
【初学者向け】TypeScript 型定義集
はじめに
TypeScriptの型定義について、
初学者がまずおぼえるべき型を一覧でまとめました。
型定義
string型(文字列)
let variant: string = "a"
number型(数値)
let variant: number = 1
boolean型(true / false)
let variant: boolean = true(false)
リテラル型
const variant = "a" // リテラル型("a")
//型注釈
let variant: 1 // リテラル型(1)
variant = 2 // NG
型エイリアス
typeを用いて定義する。パスカルケース(PC/別称:UCC)が慣例。
※例文は後述
ユニオン型
let variant = a | b // aまたはb
オブジェクト型
const variant = {a: "文字列", b: 1}
any型
何でも許可する。型チェックを回避して事前にエラーを起こさない。
unknown型(トップ型)
値の種類が不明(決まっていない)場合に利用する。
利用するときはtypeを明示する必要がある。(any型との違い)
let data: unknown = 1 // unknown型
if (typeof a === number) { ... } // {}内はnumber型として判定される
undefined型
変数が未定義の場合
value // undefined型
null型
変数に値が空(なにもない)の場合
let initialVal = null // null型
Array型
配列
const names = ["James", "Kylie", "Charlie"] // string[]型
const ages = [5, 20, 36, 51, 78] // number[]型
Tuple型
順序、型種類、要素数が決まっている配列
// [string, number, string] 型
let customer: [string, number, string] = ["James", 20, "A型"]
customer = ["James", "A型", 20] // NG
インターセクション型
type C = A & B // AかつB
void型
戻り値のない関数で指定する。
const FunctionA = (): void => { ... } // {}内で戻り値が設定されていない場合
never型(ボトム型)
終着点がない場合。
例えば、再帰的な処理での無限ループや例外処理等で利用する。
const FunctionA = (): never => { throw new Error("エラー発生") }
const FunctionB = (): never => {
while (true) {
console.log("無限ループ中...")
}
}
さいごに
ジェネリクスをはじめ、他にも便利で高次な型が存在するので勉強してみてください。
Discussion