我有一个接口
interface I1 {
field1: fieldType1;
...
fieldN: fieldTypeN;
}
现在,我需要一个具有相同字段的接口,但其中一些字段(比如前10个)是可选的.
我可以把它写成Omit<I1, field1, ..., field 10> & {field1?: fieldType1 ...}
,但想知道是否有更简洁的方法来做.
有类似的问题集中在使一个字段可选,这里的关键是这样做的多个(大量)字段.
我有一个接口
interface I1 {
field1: fieldType1;
...
fieldN: fieldTypeN;
}
现在,我需要一个具有相同字段的接口,但其中一些字段(比如前10个)是可选的.
我可以把它写成Omit<I1, field1, ..., field 10> & {field1?: fieldType1 ...}
,但想知道是否有更简洁的方法来做.
有类似的问题集中在使一个字段可选,这里的关键是这样做的多个(大量)字段.
您可以创建一个实用程序类型如下:
type PartialKeys<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;
这样使用:
type I2 = PartialKeys<I1, 'field1' | 'field2'>
你不能轻易地"说我想要前N个项目",因为TypeScript的类型系统不支持在对象的属性中强制顺序