kouの技術的メモ

学習した内容の定着やアウトプット用に開設しました

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"'