Skip to main content

29650 - ExtractToObject

Answer TestCases

实现一个类型,从接口中提取属性值。该类型接受两个参数。输出应该是一个具有属性值的对象。属性值是对象。

例如:

type Test = { id: '1'; myProp: { foo: '2' } }
type Result = ExtractToObject<Test, 'myProp'> // expected to be { id: '1', foo: '2' }

Solution

type ExtractToObject<T, U extends keyof T> = Omit<Omit<T, U> & T[U], never>

Omit<T, never> 用于展开交叉类型