
・TypeScriptの型定義ってどんなのがあるの?
こんな疑問にお答えします。
TypeScriptには色々な型定義がありますよね。
今回は自分用のメモとして型定義をまとめてみました!

参考にどうぞ
ということで、この記事では「TypeScriptの型定義」についてまとめていきます。
・TypeScriptの型定義
・TypsScriptの型推論
目次
【解説】TypeScriptの型定義をまとめてみた【初心者向け】
TypeScriptの型定義は主に下記があります。
・string型
・number型
・boolean型
・null型
・undefined型
・any型
・unknown型
・リテラル型
・Union型
・配列型
・Tuple型
・object型
・enum型(列挙型)
・型エイリアス
・関数宣言の型(パラメータ、戻り値)
・関数の型 変数時
・関数の型 アロー関数
・void型
・never型
順に見ていきましょう。
文字列の型を定義します。
// string型
let greeting: string = 'Hello';数値の型を定義します。
// number型
let num: number = 10;「真(true)」か「偽(false)」の型を定義します。
// boolean型
let itemValue: boolean = true;意図的に値が存在しない型を定義します。
// null型
let nullValue: null = null;未定義を表します。
// undefined型
let undefinedValue: undefined = undefined;どの型でも許可されます。
バニラJavaScriptと同じ感じです。
// any型
let anyItem: any = 'おはよう';
anyItem = 10;
anyItem = true;なるべく使わないほうが良い型です。
unknown型はany同様に、どの値でも代入可能です。
// unknown型
let unknownValue: unknown;
unknownValue = 10; // OK
unknownValue = true; // OK
unknownValue = 'おはよう'; // OK
let stringValue: string;
// エラー
stringValue = unknownValue;
// OK
if (typeof unknownValue === 'string') {
stringValue = unknownValue;
}ただそのままでは利用できません。
利用するためにはtypeを明示して、型をチェックする必要があります。
特定の値を指定できる型となります。
// リテラル型
const orange: 'orange' = 'orange'
const orangeNum: 3 = 3;
const orangeTrue: true = true;「〇〇型もしくは〇〇型」という定義ができます。
// union型
let unionItem: string | number = 'おはよう';
unionItem = 10;ちなみに配列時は()を記述↓
// 配列時
let unionItems: (string | number)[] = ['あいさつ', 100]: 型定義[] の形で記述します。
// 配列型
const fruits: string[] = ['りんご', 'みかん','もも']
const nums: number[] = [10, 50, 100]
const mixed: (string | number)[] = ['あいさつ', 100]型の順番や種類、数まで決めれる定義になります。
// Tuple型
const fruitInfo: [string, number, boolean] = ['もも', 300, true]上記の場合4つ目の引数を書くとエラーになりますが、push()メソッドで追加すればいれることは可能です。
(ただし参照するとエラーがでます)
// object型
const fruit: {
name: string;
color: string;
numberOf: number;
} = {
name: 'もも',
color: 'ピンク',
numberOf: 2
}型定義する部分の末尾は、「改行」or「,」 or「;」になります。
特定のグループのみを定義する型となります。
// enum型
enum FoodKinds {
VEGETABLES = 'VEGETABLES',
FRUIT = 'FRUIT',
}
const food = {
name: "もも",
kind: FoodKinds.FRUIT,
}
// OK
food.kind = FoodKinds.VEGETABLES
// エラー
food.kind = '野菜'仕様が複雑なため、使用頻度は少なめとのこと。
typeを用いて、型を変数にいれるみたいな感じになります。
// 型エイリアス
type FruitName = 'りんご' | 'みかん' | 'もも';
let apple: FruitName = 'りんご';関数ではパラメータと戻り値に対して、型を定義できます。
// 関数の型(パラメータ、戻り値)
function calculation(a: number, b: number): number {
return a + b
}ちなみに戻り値は型推論がききますが、パラメータは型推論されません。
(型推論については後述)
そのためパラメータに型定義しないと、any型になってしまうので注意。
変数に関数を入れたときの型定義が下記になります。
「:」ではなく「=>」になるのが特徴です。
// 関数の型 変数時
function calculation(a: number, b: number): number {
return a + b
}
const calculationAdd: (a: number, b: number) => number = calculation;無名関数のときはこちら↓
// 関数の型 変数時 無名関数
const calculationAdd: (a: number, b: number) => number = function (a: number, b: number): number {
return a + b
}// 関数の型 アロー関数
const calculationArrow = (a: number, b: number): number => a + b;戻り値がないときに定義する型になります。
// 関数 void型
function fruitLog(): void {
console.log('この果物はオレンジです');
}returnの処理がないときですね。
何も返さず終わりがないときに使う型になります。
// never型
function errorValue(): never {
throw new Error('エラーがあります')
}無限ループなどで使えます。
【推奨】TypeScriptの型推論を使う
TypeScriptには型を自動で推論してくれる「型推論」という機能があります。
例えば「boolean型」に定義した記述を↓
let itemValue: boolean = true;下記のようにしても自動で「boolean型」にしてくれるんですよね。
let itemValue = true;代入された値から、型を推論してくれます。
実際にVScodeで変数名をホバーしてみると、この画像のように型が定義されてるのがわかるかと。

これがTypeScriptの型推論となります。

型推論されるなら定義する必要ないの??
と疑問になりますよね。
調べたところ基本的には「型推論」を使うのが推奨されているとのこと。
「型推論」を使うことで、コード量が短くなるため。
またホバーすれば型がわかりますからね。
ただ例外もあります。
例えば下記のように、初期段階で代入しないときは型の定義を記述すべきです。(any型になってしまうので)
let itemValue;
↓ any型になるので、ちゃんと定義する
let itemValue: boolean;このように基本的には「型推論」を使いつつ、例外時は型を定義するのが良いでしょう。
(勉強時はちゃんと型定義したほうが良いかと)
【解説】TypeScriptの型定義をまとめてみた【初心者向け】:まとめ
- string型
- number型
- boolean型
- null型
- undefined型
- any型
- unknown型
- リテラル型
- Union型
- 配列型
- Tuple型
- object型
- enum型(列挙型)
- 型エイリアス
- 関数宣言の型(パラメータ、戻り値)
- 関数の型 変数時
- 関数の型 アロー関数
- void型
- never型

TypeScriptで型を定義するときはためしてみてね!

