0
給定以下代碼,例如一個角度濾波器:在TypeScript中調用構造函數返回的函數
class ToLowerFilter
{
constructor()
{
return (value: string) => value.toLowerCase();
}
}
myAngularApp.filter("toLower", ToLowerFilter);
如果我想在另一個上下文中使用此,通常你可以注入$filter
參考,並做一些事情,如:
var filteredValue = $filter('toLower')(myValueToBeLowered);
然而,打字稿編譯器抱怨這個,說$filter(...)
不返回可調用類型。
如果我想直接使用ToLowerFilter
類,那麼如何使用TypeScript來做到這一點?這些方法都不奏效:(打字稿要麼生成transpile錯誤,或者它不是正確的JavaScript語法)
// define $filter: ng.IFilterService
var filteredValue = $filter('toLower')(value);
var filter = new ToLowerFilter();
var filteredValue = filter(value);
var filteredValue = new ToLowerFilter(value);
var filteredValue = new ToLowerFilter()(value);
爲什麼不讓ToLowerFilter函數返回一個函數? –