2016-04-04 44 views
0

我有一個JavaScript需要轉換爲打字稿。它使用敲除對象作爲輸入參數。如何:打字稿和淘汰賽返回功能

打字稿進口我使用:

翻譯
import $ = require("jquery"); 
import ko = require("knockout"); 

的javascript:

var kFunc = function(stringParam) { 
    return function(fn, element, viewModel) { 
     var result = fn(element, viewModel); 
     return result; 
    } 
} 

什麼會這樣做的打字稿是什麼?

+0

你確定這是隻有JavaScript?沒有轉譯器,尚不支持導入關鍵字。 – Kalten

+0

對不起,我應該把它分成兩部分進口是打字機的起動器..將在一秒 – zdrsh

回答

1

泛型是你的朋友。您可以添加更多顯式類型信息。

var kFunc = function<TElement, TViewMdel, TResult>(stringParam: string) : (fn:((element:TElement, viewModel:TViewMdel)=>TResult), element:TElement, viewModel:TViewMdel) => TResult { 
    return function(fn, element: TElement, viewModel: TViewMdel) { 

     var result = fn(element, viewModel); 
     return result; 
    }; 
}; 

與用法:

var s2:boolean= true; 
var s:string = ""; 
var m:boolean = true; 
var r:string = kFunc<string, boolean, string>("")((ss, mm) => m===true?ss:"", s, m); 
var r2:string = kFunc<string, boolean, string>("")((ss, mm) => m===true?ss:"", s2, m); // error on s2 

function tt (a:boolean, b:string):string { return "result"} 
var r3:string = kFunc<string, boolean, string>("")(tt, s, m); // error on tt