【问题标题】:How to cast the return of a callback to a string如何将回调的返回转换为字符串
【发布时间】:2017-02-14 02:27:26
【问题描述】:

我在打字稿中有一个代码,其中有一个数组数据。这个数组包含像

这样的数据
[ {employee:"Jason",employeeRole:"teacher",id:10,gender:"male"}, 
{employee:"Mark",employeeRole:"student",id:10,gender:"male"}, ... ].

我必须在网格中显示这些数据,并且映射是通过网格(字段)的字符串类型的变量完成的,

field: this.data.for(function(arrayItem) 
    var x = arrayItem.employee + " > " +arrayItem.employeeRole;
    return x;
});

它告诉我 x 是字符串类型,但字段是 void,(当它是字符串类型时)。但是为什么会这样,我怎样才能制作字符串类型的字段。

【问题讨论】:

  • 您的x 变量将是一个字符串,因为它是通过将三个字符串连接在一起来设置的。您不能将其转换为比现在更多的字符串。问题在于,尽管您的回调返回一个字符串,但 .for() 函数并未返回该单独的字符串值。
  • 注意:4个空格会使文本变成代码格式(反引号也适用于小代码sn-ps),你也可以突出显示并使用命令Ctrl+K
  • 为什么.for不返回值@nnnnnn
  • 我不知道 Angular2 或 Typescript,但我会假设 .for() 函数只是遍历数组并且根本不返回值(或返回 undefined 或 Typescript 等价物)。这就是 JS 原生的 .forEach() 函数所做的。检查文档。
  • 我只想将连接的字符串分配给字段

标签: javascript arrays angular typescript callback


【解决方案1】:

您可以使用 typescript 获取属性:

   get field() : string {
        let x = '';
        this.data.forEach(arrayItem => {
            x += arrayItem.employee + " > " +arrayItem.employeeRole;
        });
        return x;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多