ts怎么在对象内给属性值添加类型

这样一段代码:

...
Page({
    ad: null, // 初始是null,创建ad后变为object
})

给ad属性定义了一个初始值null,期望用ad的隐式类型boolean来判断ad是否被创建了。

但在给ad赋值的时候提示不能将类型“xxx”分配给类型“null”,所以想给ad声明类型,而不是IDE自动推断的null类型。

不用interface的话有办法吗,该怎么写呢?

阅读 18.6k
1 个回答

设置一个类型就行了啊:

Page({
    ad: <Object | null>null
})

如果 ad 里字段也是确定的,声明个类型出来再设置呗:

type Ad = {
   id: number;
   name: string;
};

Page({
    ad: <Ad | null>null
})

也可以直接省略成(不建议):

Page({
    ad: <{
       id: number;
       name: string;
    } | null>null
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题