TS2554
Nieprawidłowa liczba argumentów
Expected 2 arguments, but got 1.Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Wybrana sygnatura wywołania wymaga większej liczby argumentów, niż przekazuje to wywołanie.
Odtworzenie
function pair(a: string, b: number) {} pair('x')
Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
Wymagany parametr jest częścią kontraktu funkcji. Pominięcie go sprawiłoby, że implementacja otrzyma `undefined`, choć typ mówi, że to niemożliwe, więc wywołanie zostaje odrzucone, zanim złamie obietnicę.
Naprawy
- 01
function pair(a: string, b: number) {} pair('x', 1)
Przekaż każdy wymagany argument, gdy funkcja naprawdę potrzebuje obu.
- 02
function pair(a: string, b = 0) {} pair('x')
Nadaj parametrowi wartość domyślną, gdy pominięcie ma sensowną i bezpieczną interpretację.
Wniosek
Popraw wywołanie, gdy wejście jest wymagane; zmieniaj sygnaturę tylko wtedy, gdy operacja naprawdę obsługuje pominięcie.
