TypeScript初学者定番の技術書「ブルーベリー本」を読み進めています。
プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで (Software Design plus) | 鈴木 僚太 |本 | 通販 | Amazon
プリミティブ型
- そもそも値とは「プログラムから扱うことのできるデータ」のこと
- プリミティブとは文字列や数値のようなTypeScriptの基本的な値
- 値の型の半数はプリミティブ型。オブジェクト型と大別される
- プリミティブは単一の値、オブジェクトはプリミティブの集合体
- 数値はnumber型、number型は整数と小数の区別がない
- TypeScriptのnumberは64ビットの浮動小数
- 数値リテラルの種類...10進数、2進数、8進数、16進数、指数
- 指数は1e8, 4e-5といった記法。eXの数値分だけ0が付与される桁を表す。1e8なら100000000
- bigintは任意整数、誤差なく桁の大きい数値を表現できる。123nというように数値の後にnをつける。型名もbigint
numberとbigintではnumberの方が計算速度が速い。誤差を許容できる場合はnumber型のが良い
-
- バックスラッシュ記法がメイン
- Unicodeコードポイントをつかって書くこともできる。
\u{0041}
は Aを表現する。
nullとundefindではundefindのほうが言語のサポートが手厚いことから使用推奨
プリミティブ型の変換
import { createInterface } from "readline"; const rl = createInterface({ input: process.stdin, output: process.stdout, }); rl.question("入力して", (line) => { const result = line + 1000; console.log(result) rl.close; });
明示的な型注釈がない場合、TypeScriptは型を推測する。例のconst result = line + 1000;
ではresultやlineは型注釈をつけていないがstring型になる。これを型推論という。
また、+演算子は左右の型が異なる場合に暗黙的に型変換を行う。この場合なら1000は文字列に変換される。
明示的な型変換を行う場合はNumber
関数などが用意されている。Number
関数であれば引数でとった値を数値に変換する。これは型変換というか値ごと変換している感じ。
数値に変換できない値が与えられたときはNaNが渡される
おまけ
ES moduleのインポート方法をtsconfig.jsonには記述したが、package.jsonにも記述が必要だった。 エラーメッセージに沿って"type": "module"
を追加したら解決。