我有几个接受不同参数的函数,但它们都返回具有相同签名的函数:
const createSum5 = () => (c: number) => c + 5;
const createMultiplyN = (n: number) => (c: number) => n * c;
const createWordsSum = (word: string) => (c: number) => word.length + c;
Run Code Online (Sandbox Code Playgroud)
返回类型始终为(c: number) => number. 有没有一种方法可以让我在不输入参数的情况下输入所有函数的返回值?这样我就可以将它们短路而不失去类型安全性:
createSum5: /* Something here */ = () => c => c + 5;
我已经尝试过这些,但是:
1.这个解决方案失去了类型安全性:type NumericArg = (...args: any) => (c: number) => number;
2.我可以提前为每个函数编写函数签名:
type Nfunction = (c: number) => number;
type createSum5Type = …Run Code Online (Sandbox Code Playgroud) typescript ×1