我想修改多个具有不同签名的现有函数,但仍保留原始类型/签名检查。在TypeScript中调整函数,并进行类型检查
例如:
const functionOne = (name: string, age: number) => ({
name,
age
})
const functionTwo = (name: string, sex: string) => ({
name,
sex
})
const addIndexToReturn = (adaptee: any, index: number) =>
(...args: any[]) =>
Object.assign(adaptee(...args), { index })
const functionWithIndex = addIndexToReturn(functionOne, 22)
// I don't get any type checking here
console.log(functionWithIndex('Frank', 32))
正如你所看到的,我有很多的返回各种不同的对象的功能。我有一个addIndexToReturn函数来适应这些函数,并返回一个新的函数,该函数将索引添加到它们的返回值中。
但是,新函数没有任何类型检查其参数。
任何想法?
是在'adaptee'不变参数的数量(2)?或至少有限(<3,<4 ...)? – Amit
改编后可以有任何签名 – ColinE
然后我不明白怎么定义 – Amit