Показать сообщение отдельно
  #1 (permalink)  
Старый 01.08.2017, 20:08
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Angular 2+: Ошибка при добавлении метода в декораторе класса
class Base {

}

function addGet () {
  return (target: any) => {
    const original = target;

    const constructor : any = function (...args) {
      this.get = function () {
        console.log('GET METHOD');
      }
    };
    constructor.prototype = original.prototype;

    return constructor;
  };
}

@addGet()
class ExtendedBase extends Base {

}

(new ExtendedBase()).get(); //Error: TS2339: Property 'get' does not exist on type 'GlbServersResource'.


IDEA и компилятор ругаются, что метод get не объявлен, хотя он добавляется в декораторе и код отлично работает. Это бага компилятора или что-то криминальное делаю? Как это обойти?

P.S. Добавлять метод в тело ExtendedBase и использовать декораторы методов не предлагать

Последний раз редактировалось Shitbox2, 01.08.2017 в 20:11.
Ответить с цитированием