达令说
适用于3.5以上的TypeScript版本在TypeScript 3.5中,Omit类型已添加到标准库中。请参阅以下示例以了解如何使用它。对于3.5以下的TypeScript版本在TypeScript 2.8中,该Exclude类型已添加到标准库中,该标准库允许将省略类型写为:type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>对于2.8以下的TypeScript版本您不能Exclude在2.8以下的版本中使用该类型,但是可以使用它来替代它,以便使用与上述相同的定义。但是,此替换仅适用于字符串类型,因此其功能不如Exclude。// Functionally the same as Exclude, but for strings only.type Diff<T extends string, U extends string> = ({[P in T]: P } & {[P in U]: never } & { [x: string]: never })[T]type Omit<T, K extends keyof T> = Pick<T, Diff<keyof T, K>>并使用该类型的示例:interface Test { a: string; b: number; c: boolean;}// Omit a single property:type OmitA = Omit<Test, "a">; // Equivalent to: {b: number, c: boolean}// Or, to omit multiple properties:type OmitAB = Omit<Test, "a"|"b">; // Equivalent to: {c: boolean}