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");
}
}
