Typescriptの型とは?(Typescriptを学んでいこう #1)
最近Typescriptを勉強しているので、備忘録として記録を残していきます。
第1回はTypescriptの型(タイプ)についてです。
型はどのように使うのか?
function add (num1: number, num2: number): number {
return num1 + num2;
}
上のように、引数や戻り値に型を指定することができます。
指定しない場合でも、Typescriptには型推論という機能があり、自動的に型を判定してくれます。
ただ、やはり明示的に型を指定した方が良いとされています。
Typescriptの型にはどんなものがあるのか?
Typescriptの型には下記の種類があります。
- number
- string
- boolean
- union
- object
- array
- tuple
- enum
- function
- void
- undefined
- unknown
- never
それぞれの型について見ていきます。
・number
数字です。他のプログラミング言語でもよくあるので、省略します。
・string
文字列です。他のプログラミング言語でも(ry
・boolean
真偽値です。他の(ry
・union
複数の型のうち、いずれかの型を指定できる型です。
例1: number | string
例1では、数字か文字列のどちらかが入るという意味になります。
例2: 'as-number' | 'as-text'
例2のように特定の文字列を指定することもできます。
例3: type NumberOrString = number | string;
例3のように、type
宣言をすることでエイリアス設定することもできます。例3の場合、NumberOrString
型を新しく使うことができるようになります。
・object
オブジェクトです。こんなやつです。
const person: {
name: string;
age: number;
}
オブジェクトの各要素の末尾はセミコロンなのに注意。
・array
配列です。
let hobbies: string[]; // 中に文字列が入る
let trains: number[]; // 中に数字が入る
・tuple
タプル型は、配列の中身を指定できる型です。
let role: [number, string]; // 1つ目に数字、2つ目に文字列が入る
・enum
デフォルトでは 0, 1, 2 … の順で値が割り振られる。
enum Role { ADMIN = 5, READ_ONLY, AUTHOR }
・function
javascriptで関数も1つの型として扱う。どんな型の引数が入るか指定できる。
let combineValues: (a: number, b: number) => number;
・void
何も返ってこないことを明示するための型。
function printResult(num: number): void {
console.log(num);
}
・undefined
未定義(値がまだ割り当てられていない)ということを明示するための型。
let someValue: undefined;
・unknown
値が存在するかどうかわからないことを表す型。
let userInput: unknown;
・never
関数が正常に終了しないことを示す型。
function generateError(message: string, code: number): never {
throw {message: message, errorCode: code};
}