TS中对象的一个属性是一个对象类型,如何给这个子对象的属性定义类型?

storage = {
    channel: {window: number},
    allChannel: []
  };

typescript的这段代码中我想定义storage对象的属性channel的window属性为number类型,但是得到了一个《“number”仅表示类型,但在此处却作为值使用》的错误,这种情况除了定义接口之外有什么办法吗?

阅读 8.1k
2 个回答

type是type

type Channel = {
  window: number
}
type Storage = {
  channel: Channel,
  allChannel: Channel[]
}

字面量是字面量

const storage: Storage = {
  channel: {window: 123},
  allChannel: []
};

直接写在冒号后面是赋值,<>这样是给属性值添加类型

storage = {
  channel: {window: <number>123},
  allChannel: []
};
推荐问题