虽然没有内置的减法类型,但是您现在可以将其入侵:
type Sub0< O extends string, D extends string,> = {[K in O]: (Record<D, never> & Record<string, K>)[K]}type Sub< O extends string, D extends string, // issue 16018 Foo extends Sub0<O, D> = Sub0<O, D>> = Foo[O]type Omit< O, D extends string, // issue 16018 Foo extends Sub0<keyof O, D> = Sub0<keyof O, D>> = Pick<O, Foo[keyof O]>
在问题的情况下,您可以执行以下 *** 作:
type ExcludeCart<T> = Omit<T, 'cart'>
使用Typescript> = 2.6,可以将其简化为:
export type Sub< O extends string, D extends string > = {[K in O]: (Record<D, never> & Record<string, K>)[K]}[O]export type Omit<O, D extends string> = Pick<O, Sub<keyof O, D>>
在 *** 场上测试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)