Typescript是否通过排除另一个接口';谁的财产?

Typescript是否通过排除另一个接口';谁的财产?,typescript,Typescript,我想知道它是否有以下特点。我试过谷歌,但没找到。谢谢 interface Numbers { number: number; number2: number; number3: number; } const numbers:Numbers - { number3 } = { number: 1, number2: 2 }; 编辑 从Typescript 3.5开始,省略是Typescript附带的预定义类型的一部分 原始答案 您可以在2.8中使用新的

我想知道它是否有以下特点。我试过谷歌,但没找到。谢谢

interface Numbers {
    number: number;
    number2: number;
    number3: number;
}

const numbers:Numbers - { number3 } = {
    number: 1,
    number2: 2
};
编辑

从Typescript 3.5开始,省略是Typescript附带的预定义类型的一部分

原始答案

您可以在2.8中使用新的
Exclude
条件类型和
Pick
映射类型执行此操作

type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; 

interface Numbers {
    number: number;
    number2: number;
    number3: number;
}

const numbers:Omit<Numbers, 'number3'> = {
    number: 1,
    number2: 2
};

你看过报纸了吗?它(用例子)解释了一个人可以做什么和不能做什么。@axiac谢谢!我以前读过,但不是全部。根据您的建议,我已经再次阅读了界面部分。:)根据您得到的答案,阅读每个版本的发行说明似乎需要最新的语言:。我也开始读了。@axiac我很感激你的好意。我想知道2.8中引入了排除,但它对我不起作用。很好的解决方案。谢谢你教我。:)
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>>;