#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
и посмотрите, какую ошибку вы получите.