К чему тип `${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}`, то зачем она?


Ответы (0 шт):