#TypeScriptの型のはなし
TypeScriptはJavaScriptと異なり、静的型付き言語です。また、型推論も備えています。今回は、TypeScriptを使う上で必要な型について説明します。
#型の種類
現在、TypeScriptにはプリミティブ型が7種類あります。プリミティブ型とはメソッドを持たないデータそのものを指します。また、それ以外のメソッドを持つ型をオブジェクト型といいます。今回は基本的なプリミティブ型を紹介し、他の型についてはWebアプリ開発を通して説明したいと思います。
プリミティブ型の種類
- number
- bigint
- string
- boolean
- symbol
- null
- undefined
number
number型は浮動小数点数を表す型です。TypeScriptでは、16進数、10進数、8進数、2進数のリテラルを使うことができます。
var num : number = 123
bigint
bigint型は整数を表す型であり、TypeScript3.2より追加されました。number型はIEEE 754に決められた浮動小数点数を扱うため、大きい整数を扱うことができません。そのため、大きい整数が必要な時はbigint型を使います。
var num1 : bigint = BigInt(123)
var num2 : bigint = 123n
string
string型は文字列を表す型です。文字列を扱いたい場合は、他の言語と同様に、「'」、「"」、「`」のいづれかで括ります。
var string1 : string = "foo"
var string2 : string = 'bar'
var string3 : string = `baz`
boolean
boolean型は真偽を表す型です。値はtrue/falseの2つのみです。
var tr : boolean = true
var fa : boolean = false
symbol
symbol型はユニークな値を表す型であり、ECMAScript6より追加されました。一般にはプログラムの挙動に関わらせず、デバッグなどに使います(主観)。また、global symbolとlocal symbolの使いわけが必要です。
// local symbol
var sym1 = Symbol("foo")
var sym2 = Symbol("foo")
// global symbol
var sym3 = Symbol.for("bar")
var sym4 = Symbol.for("bar")
console.log(sym1 === sym2) // false
console.log(sym3 === sym4) // true
※JavaScriptとTypeScriptには等価を示す演算子が「==」と「===」の2種類あります。前者は型変換を行った結果が等しい場合は真を返しますが、後者は型変換を行わずに型が異なれば偽となります。
"1" == 1 // true
"1" === 1 //false
null/undefined
nullは変数の使用不可、undefined型は未初期化を表す型です。null型、undefined型は他の型のサブタイプとして実装されています。
var nullvar : null = null
var undefinedvar : undefined = undefined