我在typescript中有Javascript代码
$.fn.select2.amd.require([
'select2/data/array',
'select2/utils'
], function (ArrayData, Utils) {
/* tslint:disable */
function CustomData ($element, options) :any {
CustomData.__super__.constructor.call(this, $element, options);
}
/* tslint:enable */
Utils.Extend(CustomData, ArrayData);
CustomData.prototype.query = function (params, callback) {
var result = ymaps.suggest(params.term).then(function (items) {
var data = [];
var output = {
results : [],
more : false
};
for (var index = 0; index < items.length; ++index) {
data.push({
id: String(items[index]['displayName']),
text: items[index]['displayName'],
})
}
output.results = data;
callback(output);
});
};
$("#basic").select2({
width:"100%",
closeOnSelect:false,
dataAdapter: CustomData
});
$('#basic').on('select2:select', function (e) {
console.log(e);
$('span.select2-search.select2-search--dropdown > input').val($("#basic").val());
});
});
当我尝试构建时,它说
src / app / car / car-create / car.component.ts(43,48)中的错误:错误TS2339:属性&#39; __超__&#39;在&#39;($ element:any,options:any)=&gt;类型中不存在任何&#39;
如何解决这个问题。 我试图声明var CustomData:any;和/ * tslint:在类导出行
之前禁用* /答案 0 :(得分:1)
您是否尝试将CustomData对象转换为任何?
(<any>CustomData).__super__.someprop...
或者您也可以为CustomData提供一个功能界面(尚未尝试过)
以下是函数接口的另一个示例:
interface CustomDataFN {
(this: any, $element: any, options: any): any;
__super__: any;
}
var CustomData: CustomDataFN = <CustomDataFN>function ($element, options): any {
CustomData.__super__.constructor.call(this, $element, options);
}
CustomData.prototype....
当然,您可以使用any
中的自定义属性和类型来声明接口,以防止编译错误。