2014-05-23 45 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

相关问题