2014-05-23 92 views
0

我錯過了使用TypeScript和最新的鍵入定義kendo.all.d.ts(用於ASP.NET MVC Q1的UI)在Kendo UI組合框中獲取選定索引的可能性2014)使用TypeScript獲取Kendo UI組合框中的選定索引

var comboBox = $(this).data("kendoComboBox"); 
if (comboBox) { 
    if (comboBox instanceof kendo.ui.ComboBox) { 

     var kendoUiComboBox: kendo.ui.ComboBox = <kendo.ui.ComboBox>comboBox; 
     kendoUiComboBox.? 
    } 
} 

回答

0

與打字稿最根本的問題是,沒有人維護這些.d.ts定義文件。正如你所看到的,即使一家公司試圖維護它們,有時開發人員也會錯過,因爲他們必須手工維護。上次我查找jQuery .d.ts文件時,在幾分鐘內我發現其中有3個都是不同的。拋開TypeScript的束縛,你可以跳過編譯和智能感知檢查,只需投射到<any>即可。

var selected = (<any>kendoUiComboBox).select(); 
+0

是的,我認爲定義文件的維護也較少。但是,謝謝你的建議,知道這真是太棒了! –

1

經歷的文檔:http://docs.telerik.com/kendo-ui/api/web/comboboxselect是吸氣/ setter函數。

你應該能夠做到

var comboBox = $(this).data("kendoComboBox"); 
if (comboBox) { 
    if (comboBox instanceof kendo.ui.ComboBox) { 

     var kendoUiComboBox: kendo.ui.ComboBox = <kendo.ui.ComboBox>comboBox; 
     var selected = kendoUiComboBox.select(); 
    } 
} 
+0

select方法正在等待TypeScript中的參數。查看定義文件。您可以在純JavaScript中使用此方法,但不能在TypeScript –

+1

@AntonKalcik中使用此方法,那麼它們的定義不正確。他們需要使用getter/setter模式https://github.com/borisyankov/DefinitelyTyped/issues/2001#issuecomment-39838373 – basarat

相關問題