TypeScript'te lambda ifadelerinin türü
Bir lambda ifadesini, bir dize döndüren, API açıklamasına göre (String | Object[] | Function) türlerini kabul eden bir özelliğe atamaya çalışıyorum.
this._popupTemplate.content = (feature) => {
var template: string;
//....
return template;
}
Çalışıyor gibi görünüyor, ancak WebStorm " diyor
tipi (feature:any) => string olan atanmış ifade tipe string olarak atanamaz
"
Bu yüzden bir tür ataması kullanmayı denedim: <string>(feature) => {...} ancak bu görünüşe göre hiç etkisi olmadı. Webstorm'u (bilgiyi bastırmadan) nasıl memnun edebilirim?
Cevap #1
Lambda ifadesi
(feature) => {
var template: string;
//....
return template;
}
bu şekilde normal bir fonksiyonu yazmanın sadece daha kolay bir yolu
function(feature) {
var template: string;
//....
return template;
}
Sorun, fonksiyonun kendisini değil, onun değerini atamaya çalışıyor olmanız. Önce çalıştırmanız gerekiyor. Fonksiyonun (veya lambda) etrafına parantez ekleyin ve ardından argümanlarla birlikte parantez ekleyerek çalıştırın. Şöyle:
this._popupTemplate.content = ((feature) => {
var template: string;
//....
return template;
})(feature);
