我有一个用于描述mongodb数据库数据的Typescript接口,如:
interface Foo {
_id: string,
name: string,
fish: {
_id: string,
name: string,
},
}
我有一种构建一个要插入数据库的数据的方法,例如:
function pushNewFish() {
const obj: Foo = {
name: 'obiwan',
fish: {
name: 'kenobi',
},
};
// ...
}
问题是:我没有实现每个特定于数据库的_id
元素。
我有可能使用Partial<Foo>
,但这不是我想要的。
我也有可能将每个_id: string
转换为_id ?: string
,但感觉不对。
有没有办法做:
interface FooDatabase { ... }
type Foo = Partial<'_id', FooDatabase>;
?谢谢
也许您想要这样的类型:
如果仅某些_id
字段应该是可选的,则定义一个新的实用程序类型,该类型仅将所选键声明为可选: