由于这个问题在谷歌搜索中首先弹出,因此我将在此处添加一般性解决方案,以声明返回函数的函数的类型。
因此,如果您想要为此柯里化的add
函数添加类型声明:
const add = (a : number) => (b: number) => a + b
你只需复制等号=
后面的内容,并将返回值设为相应的值:
export const add: (a : number) => (b: number) => number =
(a : number) => (b: number) => a + b;
但是此时,你不需要实际函数的类型,所以你可以只键入这个,就像它是JS一样:
export const add: (a : number) => (b: number) => number =
a => b => a + b
写得更详细一些:
写得更详细一些:
const add: (a : number) => (b: number) => number =
a => {
console.log(a);
return b => {
console.log(b);
return a + b;
}
};
使用 function
:
function add(a: number): (b: number) => number {
return function(b) {
return a + b
}
}
使用泛型:
export const add: <A extends number, B extends number>(a : A) => (b: B) => number =
a => b => a + b
或者使用function
(根据用法,B extends number
可以与A extends number
在同一位置):
function add<A extends number>(a: A): <B extends number>(b: B) => number {
return function(b) {
return a + b
}
}
Function
吗? - tymeJV