Reputation: 894
I wonder if it has any of the following features. I tried Google but I couldn't find it out. Thanks!
interface Numbers {
number: number;
number2: number;
number3: number;
}
const numbers:Numbers - { number3 } = {
number: 1,
number2: 2
};
Upvotes: 2
Views: 570
Reputation: 249706
Edit
As of Typescript 3.5 Omit
is part of the predefined types Typescript comes with.
Original answer
You can do this in 2.8 using the new Exclude
conditional type and the Pick
mapped type
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
};
Before 2.8 Omit
could be defined like this:
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>>;
Upvotes: 5