我在下面的 typescript 代码中遇到以下转换问题:
错误:
类型“() => string[]”缺少类型“string[]”的以下属性:pop、push、concat、join 以及其他 24 个属性。 函数 stringArray(): string[]
function stringArray(): string[] {
return ['a', 'b', 'c']
}
let a: string[]
a = (): string[] => stringArray()
我简化了代码,因此没有人可以理解我试图解决的实际问题。主要问题是如何定义要接受 a
赋值的箭头函数的返回值。
最佳答案
发生这种情况是因为您在变量 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();
关于javascript - 如何在 TypeScript 中将箭头函数返回值分配给 string[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971116/