Наследование TypeScript — класс должен быть объявлен после его базового класса.

Работая с TypeScript 2.2 в VS2015, у меня есть базовый класс с производным классом, который, в свою очередь, имеет производный класс.

При компиляции я получаю сообщение об ошибке "Класс должен быть объявлен после его базового класса". Каждый из классов находится в своих собственных файлах, поэтому кажется, что они скомпилированы в алфавитном порядке, потому что, если я переименую базовый класс с помощью «aa», чтобы он был первым в алфавитном порядке, тогда решение скомпилируется.

Я мог бы (и изначально так и сделал) иметь все классы в одном файле, в этом случае я могу контролировать порядок, но я не хочу помещать все производные классы в один и тот же файл.

Я делаю что-то не так, разве он не должен сначала скомпилировать самую низкую зависимость?


person Chris B    schedule 26.04.2017    source источник
comment
Можете ли вы показать нам код? А также цконфиг? Какой модуль вы используете amd или commonjs?   -  person Marco Talento    schedule 26.04.2017


Ответы (1)


Компилятор не переупорядочивает сгенерированный код. файлы выпускаются в порядке, указанном в командной строке, и через разрешение /// <references>. вы можете либо переместить определение производного класса после базового, либо добавить тег /// <reference> в файл с производным классом, указывающим на файл с базовым классом, чтобы обеспечить правильный порядок генерации.

person Community    schedule 26.04.2017
comment
Большой! Добавление ссылки на базовый класс решило проблему - спасибо - person Chris B; 26.04.2017