特定键上的Partial <>

问题描述 投票:0回答:2

我有一个用于描述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>;

?谢谢

typescript interface typescript-typings
2个回答
1
投票

也许您想要这样的类型:


1
投票

如果仅某些_id字段应该是可选的,则定义一个新的实用程序类型,该类型仅将所选键声明为可选:

© www.soinside.com 2019 - 2024. All rights reserved.