打字稿

时间:2016-11-08 14:25:56

标签: typescript lambda

我试图将一个返回字符串的lambda表达式赋给一个属性,根据API描述,该属性接受类型(String | Object [] | Function)。

 this._popupTemplate.content = (feature) => {
            var template: string; 
            //....
            return template;    
      }

然而,它似乎正在起作用,webstorm说"

  

指定的类型表达式(feature:any)=>字符串不可分配   输入字符串

"

所以我尝试使用类型断言:<string>(feature) => {...}似乎没有效果。我怎样才能满足webstorm(没有压制信息)?

1 个答案:

答案 0 :(得分:3)

Labmda表达

(feature) => {
    var template: string; 
    //....
    return template;    
}

是编写像这样的正常函数的简单方法

function(feature) { 
    var template: string; 
    //....
    return template;
}

问题是你试图分配函数本身,而不是它的价值。你必须先执行它。在函数(或lambda)周围添加括号,然后通过在其后面添加带括号的括号来执行它。像这样:

this._popupTemplate.content = ((feature) => {
        var template: string; 
        //....
        return template;    
    })(feature);