「TypeScriptの型入門」で手を動かす - その10

本日は「TypeScriptの型入門」の「テンプレートリテラル型」から手を動かします!

qiita.com

テンプレートリテラル

  • 特定の形の文字列のみを受け入れる型
  • リテラル型より少し柔軟
    • リテラル型はただ一種類の文字列のみを受け入れる
  • Hello, ${string}というように書ける
    • Helloで始まる文字列を受け入れる型
  • TypeScript4.1で導入されたときに話題になったらしい
    • conditional types (infer)と組み合わせると型レベル計算における文字列操作が可能になったから
      • あまりピンときてない

as const

  • readonlyに関連する話題
  • as const型推論の方法を指示する構文
    • 各種リテラルに付加することができて、その値が書き換えを意図していない値であることを表す
  • var foo = '123' as constとすると、string型じゃなくて"123"型となる
    • これだけならconstで定義すれば良いだけ
  • オブジェクトリテラル
    • プロパティをreadonlyにできる
    • オブジェクトをconstで定義しても、プロパティは通常プロパティは変更できる
      • as constつけると変更できなくなる
    • プロパティの型はリテラル型になる
  • テンプレート文字列リテラルに対するas const
    • テンプレート文字列リテラルは通常string型
    • as constをつけると、テンプレートリテラル型になる
      • Hello, ${string}型とか。
  • as constはリテラル型推論で型を広げて欲しくないときに使うことができる

as const で推論される型まとめ

プレイグラウンドで手を動かす

本日はここまで次は「object型と{}型」から手を動かします!