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

这样一段代码:

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

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

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

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

阅读 18.8k
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
})
推荐问题