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>>;