Vyhledávání na webu

Jak říct TypeScriptu, že hodnota je prázdný objekt?


Tady je můj kód.

function DD(x: { y: string } | {}) {
  if (x.y) {//error
   console.log("DD jingo");
  }
}

Dostávám tuto chybu: Vlastnost "y" neexistuje v typu "{} | {y: string;}". Vlastnost "y" neexistuje v typu "{}".

Jsem nový v TypeScriptu. Jak říct, že X může přijmout prázdný objekt a {y: string}.

Odpověď č. 1

Můžete označit vlastnost y jako volitelnou pomocí ?:

function DD(x: { y?: string }) {
  if (x.y) {
   console.log("DD jingo");
  }
}

Odpověď č. 2

Nevím, jestli je to dobrý vzor v TypeScriptu, ale můžete TypeScriptu explicitně říct, že vaše hodnota x je typu { y: string } ve vašem if příkazu:

function DD(x: { y: string } | {}) {
  if ((x as {y: string}).y) {
   console.log("DD jingo");
  }
}

Související články