Я довольно новичок в TypeScript (1.8), и у меня есть небольшая проблема с наследованием и статическими свойствами.Тип: статические свойства и наследование
Пожалуйста, найдите ниже тестового кода я в настоящее время работает:
class A {
public static Items = {
FOO: 'A'
};
public show() {
alert(this.constructor.Items.FOO);
}
}
class B extends A {
public static Items = {
FOO: 'B'
};
}
var a = new A();
var b = new B();
a.show(); // alert "A"
b.show(); // alert "B"
Этот код работает отлично, и два предупреждения, показаны как ожидалось.
НО машинописи компилятор выдает ошибку: Property "Items" does not exist on type "Function"
Я понимаю, предупреждение и это совершенно верно с точки машинопись зрения, но как я могу добиться того же результата, делая компилятор счастливым? this.Items.FOO
явно не работает, и я не нашел эквивалент self
или что-то в этом роде ...
Я что-то упустил?
Заранее благодарен!
Обратите внимание, что ваш 'show' метод не будет работать, если вы ввести дополнительный подкласс, который делает * не * имеет статический' 'деталей собственность, например 'class C extends A {}' –