У меня есть 2 угловых компонента.
ButtonComponent
с входом типа ButtonText
@Component({
selector: 'app-button',
template: '<h1></h1>',
})
export class ButtonComponent {
@Input() text: ButtonText;
}
export class ButtonText {
constructor(private text: string) {
}
}
И MainComponent
, который использует кнопку и передает ей ввод:
@Component({
selector: 'app-root',
template: '<app-button [text]="title"></app-button>',
})
export class AppComponent {
title = 'compiler-playground';
test: ButtonText = new ButtonText('text');
}
Проблема - если я передаю параметр с неправильным типом на вход. ng build
не возвращает никаких ошибок или предупреждений. Я пробовал множество возможных флагов углового компилятора, описанных [в документах angular]:(https://github.com/angular/angular/blob/master/aio/content/guide/aot-compiler.md#compiler-options)
"angularCompilerOptions": {
"strictMetadataEmit": true,
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true,
"skipTemplateCodegen": false,
"trace": true,
"debug": true
}
Вопрос: как добиться статической проверки типов во время компиляции? Или, может быть, есть какие-либо инструменты статического анализа, которые могут достичь этого, такие как шаблонные линтеры?