TS2315
Typ nie jest generyczny
Type 'Label' is not generic.Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Argumenty typu zostały przekazane do aliasu, który nie deklaruje parametrów typu.
Odtworzenie
type Label = string type Bad = Label<number>
Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
Nawiasy kątowe tworzą instancję deklaracji generycznej. Stały alias taki jak `Label = string` nie ma czego podstawiać, więc `Label<number>` ma tyle sensu, co przekazanie argumentu do stałej.
Naprawy
- 01
type Label = string type NameLabel = Label
Usuń argument typu, gdy alias celowo jest stały.
- 02
type Label<T> = { value: T } type NumberLabel = Label<number>
Zadeklaruj parametr, gdy alias ma się zmieniać wraz z wejściem.
Wniosek
To deklaracja rozstrzyga, czy typ jest generyczny; nawiasy kątowe w miejscu użycia nie mogą go takim uczynić.
