我正在尝试将一个返回字符串的lambda表达式赋给一个属性,根据API描述,该属性接受类型(String | Object [] | Function).
this._popupTemplate.content = (feature) => {
var template: string;
//....
return template;
}
它似乎工作,然而,webstorm说“
assigned expression of type (feature:any) => string is not assignable
to type string
“
所以我尝试使用类型断言:< string>(feature)=> {…}似乎没有效果.我怎样才能满足webstorm(不抑制信息)?
最佳答案 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);