我在下面的打字稿代码中遇到以下强制转换问题:
错误:
类型'()=> string []'缺少类型'string []'的以下属性:pop,push,concat,join和另外24个。 函数stringArray():string []
function stringArray(): string[] {
return ['a', 'b', 'c']
}
let a: string[]
a = (): string[] => stringArray()
我简化了代码,因此没有人需要了解我要解决的实际问题。主要问题是如何定义分配a
所接受的箭头函数的返回值。
答案 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()