Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript返回值或curried函数_Javascript_Typescript_Currying - Fatal编程技术网

Javascript Typescript返回值或curried函数

Javascript Typescript返回值或curried函数,javascript,typescript,currying,Javascript,Typescript,Currying,给定以下Typescript代码,我得到一个错误 TS2349:无法调用其类型缺少调用签名的表达式。类型“AddReturnType”没有兼容的呼叫签名。 为什么AddReturnType不能处理该调用 type AddReturnType = number | ((arg0: number) => number); function add(x: number, y?: number) : AddReturnType { if (!y) { return (val

给定以下Typescript代码,我得到一个错误

TS2349:无法调用其类型缺少调用签名的表达式。类型“AddReturnType”没有兼容的呼叫签名。

为什么
AddReturnType
不能处理该调用

type AddReturnType = number | ((arg0: number) => number);
function add(x: number, y?: number) : AddReturnType {
    if (!y) {
        return (val) => val + y;
    }
    return x + y;
}

add(1)(2);

TypeScript无法确定返回的是
数字
还是函数,两个选项中只有一个是可调用的。将两个函数签名分开:

function add(x: number): (number) => number;
function add(x: number, y: number): number;
function add(x, y?) {
    if (!y) {
        return (val) => val + y;
    }
    return x + y;
}

add(1)(2);

也就是说,它不应该是
val+x

TypeScript无法确定是否返回
数字或函数,并且这两个选项中只有一个是可调用的。将两个函数签名分开:

function add(x: number): (number) => number;
function add(x: number, y: number): number;
function add(x, y?) {
    if (!y) {
        return (val) => val + y;
    }
    return x + y;
}

add(1)(2);

也就是说,它不应该是
val+x

它应该是。这是我的一个输入错误。
x
y
val
都有一个隐式的
any
类型。@BrandonOlivier我还没有写出来
--strict
-ly,如果没有启用implicitany,你必须添加更多显式类型。这是我的一个输入错误。
x
y
val
都有一个隐式
any
类型。@BrandonOlivier我还没有写出来
--strict
-ly,如果没有启用隐式类型,你必须添加更多显式类型