首页 > 解决方案 > 打字稿在具有内在性的界面中使属性可选

问题描述

我的目标是克隆一个界面但更改一些参数。我从我的数据库中得到了一个默认生成的界面,就像这个

interface Db {
  id: number;
  name: text;
  ...
}

界面很长,这就是为什么我不想复制所有这些(也因为如果数据库模型发生变化,我不想手动更改我的第二个界面)。

所以,我的第二个界面应该与数据库完全相同,但 id 是可选的

我试过了:

interface NewInterface extends Db {
  id ?: number;
}

但它给我一个错误:id is need in ... but optionnal in ...

我也更喜欢避免在我的代码中使用删除运算符。但它不起作用,有人知道吗?

标签: typescripttypesinterface

解决方案


你可以这样定义你的 NewInterface:

interface NewInterface extends Omit<Db, 'id'> {
    id?: number; 
}

推荐阅读