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

标签 javascript node.js typescript

我在下面的 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/

相关文章:

javascript - 使用drive.files.export(Drive API v3)+ API key 获取文本/纯格式的公共(public)Google文档内容

javascript - Sinon TypeError : Attempted to wrap undefined property getInternationals as function

javascript - 用 express + webpack-dev-middleware/webpack-hot-middleware 替换 webpack-dev-server

javascript - 通过 $(document).ready 传递范围

node.js - Nuget 包有 'restore packages on build' ,什么有 bower 、咕噜声或 Node

javascript - 在javascript中循环遍历数组中的对象

c# - 对应 C# 语法的 Typescript

javascript - React router dom无法获取页面

javascript - 使用 requirejs 加载一个文件,里面有几个类(grunt-concat)

asp.net-mvc - 如何将 TypeScript 构建为独立于 MVC 项目并依赖于 MVC 项目的项目,并将生成的 JavaScript 复制到 MVC 项目中?