Przejdź do treści
TS2554

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    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

    1. 01
      function pair(a: string, b: number) {}
      
      pair('x', 1)

      Przekaż każdy wymagany argument, gdy funkcja naprawdę potrzebuje obu.

    2. 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.

    Dokąd dalej

    Błędy