All Articles

TypeScript 入門 (2) -型の紹介(前編)-

TypeScript の学習として、私は オライリー・ジャパンの「TypeScript」をおすすめします。

第2回目の本記事では、TypeScriptの型について紹介します。 型については多くの記載事項があるので、前編・後編に分けます。

coding

TypeScript の型

TypeScriptの型は、習得したプログラミング言語によっては新鮮に感じるものもいくつか存在します。 どのような値を保持できるか、どのような事ができるのかに着目して紹介していきます。

any

any はその名の通り、どんな値でも受け入れる最上位の型です。 TypeScriptの型推論や、ユーザがプログラムする際にも、何が入るか分からないデフォルトの型です。 しかし、何でも出来てしまう型の利用は、それだけでTypeScriptの型推論の良さを激減してしまいます。 JavaScriptのような振る舞いを許すのは不本意なので、極力利用は避けましょう。

let a: any = 12345
let b: any = 'Sample'

のように、利用する際は any の型付けを明示すべきでしょう。 それでも、使わないに越したことはありません。

Unknown

any と同様にどんな値でも受け入れる型ですが、「型が分からない」場合に利用します。 ただし、TypeScriptでは Unknown 型の値を直接私用することはできず、必ず事前に型のチェックが必要になります。

let a: unknown = 12345
let b = a + 12345

let b の実行結果は何になるでしょうか。正解は、「オブジェクトの型は'Unknown'です」 というエラーになる、です。

let a: unknown = 12345
if (typeof a === 'number') {
  let b = a + 12345
}

このように、unknown の型が数値であると明確になっていなければ、その値を利用することはできないのです。

boolean

これは一般的なプログラミング言語の真偽値型とほとんど同じですね。 true / false の比較、否定が主な利用方法です。

let a = true
var b = false
const c = true
let d: boolean = true

基本的にはTypeScriptに型を推論させることが多いですが、const のようにただ一つの値を示す方は リテラル型 と呼ばれます。 リテラル型は以下のようにも定義できます。

let a: true = true

これは、全てのbooleanの中から特定のbooleanの値を撮ることを明示するリテラル型の記述方法で、TypeScript特有です。 私はJavaからITの世界に足を踏み入れたので、未だにこの書き方になれません(^^;)

number

number は、全ての数値を扱い、整数から浮動小数点数、正負、NaNなどあらゆる数値に適用できます。 加減乗除や比較などに利用できます。

let a = 12345
var b = 1.234
const c = 100
let d = b < a   // boolean 
let e: number = a * b

これも基本的には、TypeScriptに型を推論させる方がいいです。

bigint

bigint は、数値の丸めのエラーなく、大きな整数を利用できるという型です。 通常、numberは2の53乗までしか扱えませんが、bigint はそれよりおおきな数値を表現できます。 number同様、加減乗除や比較に利用します。

string

string では文字列の格納と、それらの利用ができます。

let a = 'sample'
var b = 'hoge'
const c = 'fuga'
let d = b + ' & ' + c
let e: string = 'Hello'
let f: 'World' = 'World'

まとめ

前編で紹介した型については、基礎的なものが多いので理解しやすいと思います。 しかし、文字列や数値の扱い方だけでも、従来のJavaScriptとは全く特徴が違うと感じるのではないでしょうか。 後編は、もう少し複雑な型について紹介します。

最後までお読みいただきありがとうございました。