book
book copied to clipboard
テンプレートリテラル型 (template literal type)をコンテンツに追加しませんか?
背景
- テンプレートリテラル型は一旦は「サバイバル知識」ではないという判断になった。(知らなくても実務にあまり支障がない、かつ、知ってても役立つ場面が少ない)
- そのため、サバイバルTypeScriptでは取り扱っていない。
論点1: テンプレートリテラル型は実務サバイバル知識か?
テンプレートリテラル型は実務にあたって必須知識なのかどうかを以下の立場から議論します。
主張1. 必須知識ではない
主張2. 読めるようになっておくべき
主張3. 読めて書けるようになっておくべき
論点2: 主張2-3の場合、テンプレートリテラル型の実用例は何があるか?
- 主張2の場合: 実務にあたってよく使われる例は何があるか?
- 主張3の場合: 実務で使うにあたって、身近な活用例は何があるか?
数値リテラルから文字列リテラルを導出する
type StringOf<T extends number> = `${T}`
type ResponseCodeString = StringOf<200 | 400 | 403 | 404>;
// ^?
URLフォーマットか型レベルで簡易チェックする
type UrlString = `https://${string}`;
const url: UrlString = "https://example.com"; // ok
const invalid: UrlString = "example.com"; // Error