UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【TypeScript】テンプレートリテラル型

下の本を読んでテンプレートリテラル型を知らなかったのでメモ

あったらいいのにと思っていた構文だが、v4.1(約2年前)からあったみたいで、うまく探せてないだけだった

本を読んで存在をしれてよかった

JavaScriptと同様にHello, ${string}!のような書き方でテンプレート化できるが、${}の中は型名がはいる

本を読んで面白い使い方だと思ったのは、戻り値をテンプレートリテラル型にする逆の関数をつくる話

つまりsliceした後の文字列を型にした戻り値をつくる関数

function fromKey<T extends string>(key: `user: ${T}`): T {
  return key.slice(5) as T;
}

const user = fromKey("user:test"); // userは"test"型になる

自分のプロジェクトで、あるIDをサービス名:親番号:子番号:言語というようにプロパティを駆使して整形している

いままで、stringにしていたので、このテンプレートリテラル型でより安全にできそう