我试图将一个返回字符串的lambda表达式赋给一个属性,根据API描述,该属性接受类型(String | Object [] | Function)。
this._popupTemplate.content = (feature) => {
var template: string;
//....
return template;
}
然而,它似乎正在起作用,webstorm说"
指定的类型表达式(feature:any)=>字符串不可分配 输入字符串
"
所以我尝试使用类型断言:<string>(feature) => {...}
似乎没有效果。我怎样才能满足webstorm(没有压制信息)?
答案 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);