Hvordan fortelle TypeScript at en verdi er et tomt objekt?
Her er koden min.
function DD(x: { y: string } | {}) {
if (x.y) {//error
console.log("DD jingo");
}
}
Jeg får denne feilen: Egenskapen "y" eksisterer ikke i typen "{} | {y: string;}". Egenskapen "y" eksisterer ikke i typen "{}".
Jeg er ny på TypeScript. Hvordan sier man at X kan godta et tomt objekt og {y: string}.
Svar #1
Du kan markere y-egenskapen som valgfri ved å bruke ?:
function DD(x: { y?: string }) {
if (x.y) {
console.log("DD jingo");
}
}
Svar #2
Ikke sikker på om dette er et godt mønster i TypeScript, men du kan eksplisitt fortelle TypeScript at verdien din av x er av typen { y: string } i if-setningen din:
function DD(x: { y: string } | {}) {
if ((x as {y: string}).y) {
console.log("DD jingo");
}
}
