TypeScript(静的型付け、型推論、Null 安全性)
TypeScriptの利点
静的型付け、型推論、Null 安全性という最近のプログラミング言語のトレ ンドを押さえつつ、それ以外の部分はまんま JavaScript と文法が同じなので使いやすい。
TypeScript のプリミティブ型
・ number ・ string ・ boolean ・ symbol ・ null ・ undefined
型推論
明示的にnumber型を指定したい時は以下のように書く。 ちなみにstrictNullChecks オプションを有効にしないとnullを代入できる
>let n:number=3; > typeof s 'string' >n=null; null
コードで指定しなくともtsの機能によって、システム側で可能性の高い型を自動的に当ててくれる。
>let s='foo'; 'foo' > typeof s 'string'
Null安全性
tsconfig.jsonのstrictNullChecks オプション(もしくはstrictNullChecks)が有効になっていると、nullを代入しようとするとエラーになる。
strictNullChecks が有効になってる場合でも、あえてその変数の 値に Null を許容したい場合、以下のように共用体型を使う。
>let i:number | null=1; //numberかnullを入れることができる。 1 >i=null; null
また、Null以外を入れることもできる。
> let some: number | string | undefined = 'bar'; //numberかstringかundefinedを入れることができる。 >some=50; 50 > some = undefined; undefined
このような自由に定義した型を ストリングリテラル型と言い、enum のように定義できる。
> let pet: 'cat' | 'dog' | 'rabbit' = 'dog'; > pet 'dog' > pet = 'cat'; 'cat' > pet = 'hamster'; [eval].ts(4,1): error TS2322: Type '"hamster"' is not assignable to type '"cat" | "dog" | "rabbit"'