TS2749
Wartość użyta jako typ
'widget' refers to a value, but is being used as a type here. Did you mean 'typeof widget'?Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Zmienna czasu działania została zapisana w przestrzeni typów; użyj `typeof`, aby pobrać typ tej wartości.
Odtworzenie
const widget = { id: 1 } type Copy = widget
Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
Nazwy nie przechodzą automatycznie z przestrzeni wartości do przestrzeni typów. Typowa forma `typeof` jest jawnym mostem: prosi kontroler o uchwycenie statycznego typu istniejącej wartości bez uruchamiania operatora JavaScript.
Naprawy
- 01
const widget = { id: 1 } type Copy = typeof widget
Użyj zapytania o typ, gdy wartość ma być źródłem prawdy.
- 02
type Widget = { id: number } const widget: Widget = { id: 1 }
Najpierw zadeklaruj typ, gdy kontrakt ma rządzić wieloma wartościami.
Wniosek
W pozycji typu używaj `typeof wartość`; sama nazwa wartości pozostaje wyrażeniem czasu działania.
