Add support for literal type subtraction · Issue #12215 · microsoft/TypeScript (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
Now we have Mapped Types and keyof, we could add a subtraction operator that only works on literal types:
type Omit<T, K extends keyof T> = { [P in keyof T - K]: T[P]; };
type Overwrite<T, K> = K & { [P in keyof T - keyof K]: T[P]; };
type Item1 = { a: string, b: number, c: boolean }; type Item2 = { a: number };
type T1 = Omit<Item1, "a"> // { b: number, c: boolean }; type T2 = Overwrite<Item1, Item2> // { a: number, b: number, c: boolean };