TypeScript · Senior · Pytanie 7 z 75

Po co są typy „branded”?

type UserId = string & { readonly __brand: 'UserId' };

Wyjaśnienie

Typowanie strukturalne uznaje wszystkie stringi za zgodne, więc deleteUser(orderId) się skompiluje. Brand to fikcyjna właściwość istniejąca tylko w typach; wartość tworzy funkcja-konstruktor ze sprawdzeniem (toUserId(s): UserId). To emulacja typowania nominalnego.

Do poczytania

Błąd w pytaniu

TypeScript · Senior · pytanie 7

Sprawdź się

Rozwiąż test TypeScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test