【かたへんかん】

型変換(キャスト) とは?

最終更新:
💡 文字の「3」を、計算できる数の3へ

値を、別の型として扱える形へ変換すること。明示して行う変換と、演算などに伴う暗黙の変換があり、具体的な動作は言語や関数によって異なります。

📌 このページのポイント
型変換:文字列を数値として扱う文字列"3"Number()数値3変換しない例変換する例"3" + 5Number("3") + 5→ "35"(文字列)→ 8(数値)これはJavaScriptの例だよ
JavaScriptの明示的な変換の例。数へ変える処理と、TypeScriptの型アサーションは異なります。
ひよこ ひよこ
文字の「3」と、数の3は違うの?
ペンギン先生 ペンギン先生
JavaScriptでは違うよ。例えば文字列の'3'と数の5を+でつなぐと、文字列の'35'になる。Number('3')で数へ変換してから5を足すと8になるよ。ここではJavaScriptの例で、全ての言語が同じ規則というわけではない。
ひよこ ひよこ
暗黙の変換って何?
ペンギン先生 ペンギン先生
プログラマーが変換を指定しなくても、演算などの規則で値の型が変わることだよ。今の'3' + 5では、数の5が文字列として扱われて連結された。明示する変換ではNumber()などを使い、何をしたいかをコードに書くんだ。
ひよこ ひよこ
Number()なら、どんな入力でも安心?
ペンギン先生 ペンギン先生
Number('10px')はNaNになり、空の文字列は0になる。parseInt('10px', 10)は読める先頭の部分を扱い、10を返すよ。同じ文字列でも関数の規則が違うので、入力全体が有効かや、変換後の値を確認しよう。
ひよこ ひよこ
TypeScriptのasでも、値は変わる?
ペンギン先生 ペンギン先生
asによる型アサーションは、コンパイラーに型の情報を伝えるもので、実行時の値を変換したり検証したりしないよ。TypeScriptは許されるアサーションの範囲も確認するけれど、実際の入力を変える処理ではない。必要な変換と入力確認は別に書くんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「型変換」って出てきたら「値を別の型へ変える操作」と思えばだいたいOK!
📖 おまけ:英語の意味
「Type Conversion / Type Casting」 = 型の変換
💬 言語によってcastingやconversionの使い方に違いがあります。ここでは値を別の型へ変換する考え方を、JavaScriptの例で説明します。

参考資料

← 用語集にもどる