Przejdź do treści
TS2739

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    TS2739

    Obiekt nie ma wymaganych właściwości

    Type '{}' is missing the following properties from type 'Point': x, y

    Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.

    Typ docelowy wymaga kilku składowych, a przekazany obiekt nie ma żadnej z nich.

    Odtworzenie

    interface Point {
      x: number
      y: number
    }
    
    const point: Point = {}

    Build potwierdza, że to emituje dokładnie ten kod.

    Dlaczego kompilator tak mówi

    Typowanie strukturalne sprawdza składowe, które wartość rzeczywiście dostarcza. Pusty obiekt nie spełnia kontraktu obiecującego liczbowe właściwości `x` i `y`, nawet jeśli kod zamierza uzupełnić je później.

    Naprawy

    1. 01
      interface Point {
        x: number
        y: number
      }
      
      const point: Point = { x: 0, y: 0 }

      Utwórz pełną wartość, zanim nadasz jej pełny typ.

    2. 02
      interface Point {
        x: number
        y: number
      }
      
      const draft: Partial<Point> = {}

      Jawnie przedstaw niepełny etap budowy za pomocą `Partial`.

    Wniosek

    Wymagana właściwość jest obietnicą dostępną od razu. Użyj osobnego typu szkicu, jeśli obiekt nie jest jeszcze gotowy.

    Dokąd dalej

    Błędy