отсутствует ссылка для kendo.data.ObservableObject при расширении класса typescript

#kendo-ui #typescript #observable

#kendo-ui #typescript #наблюдаемый

Вопрос:

 export class MyClass extends kendo.data.ObservableObject {

constructor() {
        super();
        super.init(this);

    }

.
.
.
.


}
  

Я получаю ошибку компиляции:
Ошибка сборки 599: введите имя ‘kendo.data.ObservableObject’ в предложении extends не ссылается на функцию конструктора для ‘kendo.data.ObservableObject’.

Чего мне здесь не хватает?

Ответ №1:

Введите имя ‘kendo.data.ObservableObject’ в предложении extends не ссылается на функцию конструктора для ‘kendo.data.ObservableObject’.

На основе http://docs .telerik.com/kendo-ui/api/framework/observableobject конструктору нужен как минимум один аргумент (объект для наблюдения). Поэтому вам нужно вызвать конструктор с аргументом, как показано на рисунке:

 export class MyClass extends kendo.data.ObservableObject {

    constructor(objToObserve) {
        super(objToObserve);
    }

.
.
.
.


}
  

Ответ №2:

Эта ошибка, возможно, самая запутанная, выдаваемая компилятором, означает, что когда компилятор искал значение, указанное типом в предложении extends , оно не преобразовывалось в значение, которое было функцией конструктора для этого типа.

Меньший пример:

 class C { }

module M {
    var C = 3;
    class D extends C { } // <-- Error
}
  

Здесь имя типа C внутри M означает class C , но имя значения C означает var объявленное в модуле.

Похоже, у вас может быть var kendo или var data где-то в вашей программе. Чтобы диагностировать это, над строкой, которую вы пишете extends kendo.data.ObservableObject , напишите var foo: kendo.data.ObservableObject и посмотрите, какую ошибку вы получите.