К чему тип `${string}-${string}...`
Описание
Очень давно заметил, что crypto.randomUUID();
возвращает тип `${string}-${string}-${string}-${string}-${string}`
.
Не понимал зачем этот тип, а не просто string
и как его использовать.
Вчера, когда узнал про теговые шаблоны, понял, что вероятнее всего тип связан с ними.
Написал тег:
function join(strings: TemplateStringsArray, ...parts: string[]): string {
return parts.join('');
}
Теперь пытаюсь использовать его вместе с типом:
const uuid = crypto.randomUUID();
join uuid; // Unexpected keyword or identifier.
(join)uuid // ';' expected.
join(uuid) // Argument of type '`${string}-${string}-${string}-${string}-${string}`' is not assignable to parameter of type 'TemplateStringsArray'.
join`${uuid}` // передается вся строка как первый параметр
join[uuid] // делает совершенно другое
[join]uuid // ';' expected
joinuuid // (¬_¬ )
Вопрос
Как это использовать?
А если я неправильно понял значение типа `${string}-${string}-${string}-${string}-${string}`
, то зачем она?