我有这个列表对象,但后来形状改变了,我需要一个额外的id属性,但如何不修改列表?

interface List {
    name: string //without adding id here
}

interface ListData {
    type: string
    lists: List[] //how to include id here?
}

const data: ListData = {
    type: 'something',
    lists: [{
        id: '1',
        name: 'alice'
    }, {
        id: '2',
        name: 'ja'
    }]
}

推荐答案

您可以使用List接口

interface List {
  name: string //without adding id here
}

interface ListId extends List {
  id: string
}

interface ListData {
  type: string
  lists: ListId[]
}

const data: ListData = {
  type: 'something',
  lists: [{
    id: '1',
    name: 'alice'
  }, {
    id: '2',
    name: 'ja'
  }]
}

Javascript相关问答推荐

使用redux-toolet DelivercThunks刷新访问令牌

如何使用Echart 5.5.0创建箱形图

materialized - activeIndex返回-1

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

为什么!逗号和空格不会作为输出返回,如果它在参数上?

我的服务工作器没有连接到我的Chrome扩展中的内容脚本.我该怎么解决这个问题?

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

以Angular 实现ng-Circle-Progress时出错:模块没有导出的成员

VSCode中出现随机行

Puppeteer上每页的useProxy返回的不是函数/构造函数

邮箱密码重置链接不适用于已部署的React应用程序

Vaadin定制组件-保持对javascrip变量的访问

处理TypeScrip Vue组件未初始化的react 对象

JWT Cookie安全性

未捕获的不变违规:即使在使用DndProvider之后也应使用拖放上下文

如何在加载页面时使锚定标记成为焦点

如何用react组件替换dom元素?

如何在preLoad()中自定义p5.js默认加载动画?

如何根据获取的对象数量动态生成状态变量

我如何才能阻止我的球数以指数方式添加到我的HTML画布中?