打字稿错误TS2339:属性' __超__'在'($ element:any,options:any)=>类型中不存在任何'

时间:2018-02-22 14:06:52

标签: angular typescript

我在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:在类导出行

之前禁用* /

1 个答案:

答案 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中的自定义属性和类型来声明接口,以防止编译错误。