Я занимаюсь разработкой проекта Angular 7, созданного с использованием angular-cli 7.2 и vscode 1.39.
При запуске с помощью ng-serve проект автоматически перекомпилируется при каждом сохранении файла. Файлы, содержащие только абстрактные классы, не перекомпилируются независимо от того, какие изменения я делаю. Я должен остановить и перезапустить сервер разработки, чтобы изменения были распознаны.
Файл примера, который не перекомпилируется автоматически при сохранении:
export abstract class Foo {
abstract member1: any;
}
Файлы, содержащие конкретные классы, перекомпилируются присохранено:
import { Foo } from "./foo";
export class Bar implements Foo {
public member1: any;
}
Я нашел обходной путь, заставив потребителя импортировать (нежелательный) конкретный экспорт: все файлы затем автоматически перекомпилируются:
export const unwanted: any;
export abstract class Foo {
abstract member1: any;
}
и
import { Foo, unwanted } from "./foo";
export class Bar implements Foo {
public member1: any;
}
Является ли это поведение ошибкой или это задумано? Если это ошибка, может кто-нибудь подсказать, где было бы лучше всего сообщить об этом?
Будет ли это интересно для VSCode, Angular, Angular-cli или команды компиляторов Typescript?
PS - я использую абстрактный класс, а не интерфейс, потому что абстрактный класс может использоваться в качестве токена внедрения в Angular DI (интерфейсы не могут, поскольку их нет во время выполнения).
PS2 - экспортированная константа имеетбыть импортированным куда-то для обходного пути для работы. Простого добавления экспортированной константы в исходный файл недостаточно, чтобы файл перекомпилировался.