type Obj<T> = T extends {a: infer VType, b: infer VType} ? VType : number; let obj4: Obj<{a: number, b: () => void}>; obj4 = 1