📑
型の変換【TypeScript】
はじめに
実務でTypeScriptの型の変換についてわからないことがあり調べたので、
備忘録として残しておきます。
TypeScript においての型の変換
TypeScript において、型の変換を指す用語はいくつかあります。
それらを一つずつ整理していきたいと思います。
1.型変換(Type Conversion)
型変換は、ある型の値を別の型の値に変換することです。例えば、文字列を数値に変換することなどが含まれます。
let str: string = "123";
let num: number = Number(str);
2.型キャスト(Type Casting)
型キャストとは、ある型を別の型に変換することです。TypeScriptでは、as キーワードやアングルブラケット(TypeScriptの非推奨方式)を使用して型キャストを行います。
let value: any = "Hello, TypeScript";
let strLength: number = (value as string).length;
3.型アサーション(Type Assertion)
型アサーションは、変数が特定の型であることをコンパイラに伝えるための手段です。型キャストと同様に as キーワードを使いますが、実行時に型チェックは行われません。
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
4.型ナローイング(Type Narrowing)
型ナローイングは、ある値が特定の型であることを確認するための方法です。TypeScriptは、typeof、instanceof、ユーザー定義の型ガードを使って型を絞り込みます。
function padLeft(value: string, padding: number | string) {
if (typeof padding === "number") {
return Array(padding + 1).join(" ") + value;
}
if (typeof padding === "string") {
return padding + value;
}
throw new Error(`Expected string or number, got '${padding}'.`);
}
5.型推論(Type Inference)
型推論は、TypeScriptのコンパイラがコードを解析して変数の型を自動的に推論するプロセスです。
let x = 3; // TypeScript は x の型を number と推論する
まとめ
上記の用語や用途はそれぞれ異なる文脈で使われますが、すべて型の変換に関するものです。
状況に応じて適切に型を変換できるようになればコードの幅もきっと広がるはずです。
Discussion