猿问

关于响应类型之一中不存在的属性的打字稿警告

我收到了以下形式的回复:


const response : {

   a : string,

   b : string

} | {

   message : string

} = callFunc();

在我的代码中,我将其用作:


response.message && doSomething(message);

然而,打字稿尖叫着属性“消息”在上面定义的第一种类型上不存在。我应该如何解决这个问题?


慕尼黑的夜晚无繁华
浏览 161回答 2
2回答

jeck猫

因为response是联合类型,可能没有message属性,所以您必须先检查它if ('message' in response) {   doSomething(response.message) }

一只斗牛犬

您必须在第一种类型 json 中输入消息属性,例如const 响应 : { a : 字符串, b : 字符串, 消息:字符串 } | { 消息:字符串 } = callFunc();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答