打字稿对象可能未定义[重复]

Posted

技术标签:

【中文标题】打字稿对象可能未定义[重复]【英文标题】:Typescript object is possibly undefined [duplicate] 【发布时间】:2019-12-24 03:32:11 【问题描述】:
interface c 
    state?: b: string


const x: c =  state: b: 'c'
console.log(x.state.b)

在上面的代码中,在接口c中,state是一个可选属性。

但是,当我想在设置状态对象时访问它的属性 b 时,它给了我这个错误,对象可能是“未定义”。解决此问题的正确方法是什么?

【问题讨论】:

【参考方案1】:

如果你确定一个可选的(标有?的字段)有一个值,这可以通过检查它的值来实现:

if(x.state !== undefined)
  console.log(x.state.b)

您可以使用! 将其标记为存在:

console.log(x.state!.b)

【讨论】:

【参考方案2】:

那是因为state 可以是未定义的,编译器并不总是知道它何时被明确定义。

您可以告诉它您确定它已定义,只需使用:x.state!.b

【讨论】:

以上是关于打字稿对象可能未定义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

打字稿 - 未捕获的 ReferenceError:未定义导出

使用打字稿时出现“未捕获的 ReferenceError:未定义角度”

打字稿方法返回未定义的方法装饰器

打字稿方法返回未定义?

为啥在带有 http 承诺的打字稿模块中未定义“this”

打字稿和电子出口未定义