「TypeScriptの型入門」で手を動かす - その10
本日は「TypeScriptの型入門」の「テンプレートリテラル型」から手を動かします!
テンプレートリテラル型
- 特定の形の文字列のみを受け入れる型
- リテラル型より少し柔軟
- リテラル型はただ一種類の文字列のみを受け入れる
Hello, ${string}
というように書ける- Helloで始まる文字列を受け入れる型
- TypeScript4.1で導入されたときに話題になったらしい
- conditional types (infer)と組み合わせると型レベル計算における文字列操作が可能になったから
- あまりピンときてない
- conditional types (infer)と組み合わせると型レベル計算における文字列操作が可能になったから
as const
readonly
に関連する話題as const
は型推論の方法を指示する構文- 各種リテラルに付加することができて、その値が書き換えを意図していない値であることを表す
var foo = '123' as const
とすると、string型じゃなくて"123"型となる- これだけなら
const
で定義すれば良いだけ
- これだけなら
- オブジェクトリテラル
- プロパティをreadonlyにできる
- オブジェクトをconstで定義しても、プロパティは通常プロパティは変更できる
as const
つけると変更できなくなる
- プロパティの型はリテラル型になる
- テンプレート文字列リテラルに対するas const
- as constはリテラルの型推論で型を広げて欲しくないときに使うことができる
as const で推論される型まとめ
- 文字列、数値、真偽値はリテラル型になる
- テンプレート文字列リテラルはテンプレートリテラル型になる
- オブジェクトリテラルはプロパティがreadonlyになる
- 配列リテラルはreadonlyタプル型になる
本日はここまで次は「object型と{}型」から手を動かします!