如何在TypeScript中将箭头函数返回值分配给string []

时间:2018-12-29 16:03:34

标签: javascript node.js typescript

我在下面的打字稿代码中遇到以下强制转换问题:

错误:

类型'()=> string []'缺少类型'string []'的以下属性:pop,push,concat,join和另外24个。 函数stringArray():string []

function stringArray(): string[] {

    return ['a', 'b', 'c']
}

let a: string[]

a = (): string[] => stringArray() 

我简化了代码,因此没有人需要了解我要解决的实际问题。主要问题是如何定义分配a所接受的箭头函数的返回值。

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您在变量a中分配了箭头函数引用。

function stringArray(): string[] {

    return ['a', 'b', 'c'];
}

let a: Function;

a = (): string[] => stringArray();

相反,您应该将类​​型设置为Function

或者您可以调用箭头函数以返回数组['a', 'b', 'c']

function stringArray(): string[] {

    return ['a', 'b', 'c'];
}

let a: string[];

a = ((): string[] => stringArray())();

简单起见:

 function stringArray(): string[] {

    return ['a', 'b', 'c'];
 }

 let a: string[];

 a = stringArray();

答案 1 :(得分:0)

您正在为a分配另一个箭头功能。要将返回值分配给a,请调用赋值函数。

let a: string[]
a = stringArray()