TS2351
Wyrażenia nie można skonstruować
This expression is not constructable.Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Wartość po `new` nie ma sygnatury konstruktora, więc nie może utworzyć instancji.
Odtworzenie
const value = {}
new value()Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
`new` wymaga klasy lub funkcji konstruktora, której typ opisuje tworzoną instancję. Zwykły obiekt już jest wartością; nie jest przepisem na tworzenie kolejnej.
Naprawy
- 01
class Value { readonly ok = true } const value = new Value()Użyj klasy, gdy wywołujący mają tworzyć odrębne instancje.
- 02
const makeValue = () => ({ ok: true }) const value = makeValue()
Użyj fabryki bez `new`, gdy wystarczy zwykły obiekt.
Wniosek
Sygnatura konstruktora opisuje, co może zrobić `new`. Gdy typ jej nie ma, zaimportowano złą wartość albo `new` nie powinno tam być.
