前提
この記事は、初学者の私が、サバイバルTypeScriptで学んだこと+調べたことをまとめたものになります。
従って、経験則に基づいた発言ではないため、一部慣習とは違っていたり、認知にずれがあったりする可能性がありますので、ぜひコメントで指摘していただけると幸いです。
基本的の型
number
- 数値を扱う
- 整数も小数もnumber型として扱う
0.1 === .1
-
0b~
,0o~
,0x~
で2、8、16進数を扱える - min : -(2^53-1) max : 2^53-1
- 非数 :
NaN
無限 :Infinity
number
const n : number = 5;
string
- 文字列を扱う
-
""
,''
どちらでも同じ - バックスラッシュ
\
によるエスケープ -
``
と${name}
でテンプレートリテラル
string
const name : string = Taro;
boolean
- 真偽値(
true
/false
)を扱う
boolean
const isTaro : boolean = false;
bigint
- 大きな整数を扱い、末尾に
n
を付ける - 小数は扱えない
- 各n進数はnumber型と同様に扱い、nを末尾付ける
- 理論上上限はないがメモリによる制約はある
-
NaN
,Infinity
はエラー - es2020以降で対応
- number型との演算は不可
- 直接JSON.stringify()に渡せない
bigint
const bigN : bigint = 5n;
symbol
symbol型はJavaScriptの保守性を高めるために開発されたものであるため、web開発での使用頻度は低い
- 宣言した値が一意になる
➡値が同じでも、別々で宣言した場合、別のものとして認識される
symbol
const sym1 = Symbol("Hello");
const sym2 = Symbol("Hello");
console.log(sym1 === sym2); // => false
undefined
- 未定義の要素にアクセスしたときに返される
- 値が格納されていない変数や未定義のプロパティ、インデックスなど。
undefined
const a : undefined = undefined;
null
- 値がない状態
- 存在していないことを明示的にする
-
typeof
で肩を調べるとobject
が返される。
undefined
const age : null = null;
console.log(typeof null); // => object
undefinedとnullについて
undefined | null |
---|---|
JavaScriptが自動的に割り当てる | 開発者が意図的に定義する |
中身が何か、存在しているのかさえ分からない箱 | 何も入っていないことが明らかな箱 |
まとめ
以上になります。型の制約についてはc++等で触れましたが、また少し違った癖があって面白いですね。
当方初学者なため、認知のずれや、モダンな開発現場ではもう使わない表現などがありましたらコメントで指摘していただけると幸いです。😸