feat(compiler): reuse the TypeScript typecheck for template typechecking. (#19152)
This speeds up the compilation process significantly. Also introduces a new option `fullTemplateTypeCheck` to do more checks in templates: - check expressions inside of templatized content (e.g. inside of `<div *ngIf>`). - check the arguments of calls to the `transform` function of pipes - check references to directives that were exposed as variables via `exportAs` PR Close #19152
This commit is contained in:

committed by
Matias Niemelä

parent
554fe65690
commit
996c7c2dde
@ -34,12 +34,13 @@ export class CompilerImpl implements Compiler {
|
||||
private _delegate: JitCompiler;
|
||||
constructor(
|
||||
private _injector: Injector, private _metadataResolver: CompileMetadataResolver,
|
||||
templateParser: TemplateParser, styleCompiler: StyleCompiler, viewCompiler: ViewCompiler,
|
||||
ngModuleCompiler: NgModuleCompiler, summaryResolver: SummaryResolver<Type<any>>,
|
||||
compileReflector: CompileReflector, compilerConfig: CompilerConfig, console: Console) {
|
||||
htmlParser: HtmlParser, templateParser: TemplateParser, styleCompiler: StyleCompiler,
|
||||
viewCompiler: ViewCompiler, ngModuleCompiler: NgModuleCompiler,
|
||||
summaryResolver: SummaryResolver<Type<any>>, compileReflector: CompileReflector,
|
||||
compilerConfig: CompilerConfig, console: Console) {
|
||||
this._delegate = new JitCompiler(
|
||||
_metadataResolver, templateParser, styleCompiler, viewCompiler, ngModuleCompiler,
|
||||
summaryResolver, compileReflector, compilerConfig, console,
|
||||
_metadataResolver, htmlParser, templateParser, styleCompiler, viewCompiler,
|
||||
ngModuleCompiler, summaryResolver, compileReflector, compilerConfig, console,
|
||||
this.getExtraNgModuleProviders.bind(this));
|
||||
}
|
||||
|
||||
@ -141,7 +142,7 @@ export const COMPILER_PROVIDERS = <StaticProvider[]>[
|
||||
{ provide: NgModuleCompiler, deps: [CompileReflector] },
|
||||
{ provide: CompilerConfig, useValue: new CompilerConfig()},
|
||||
{ provide: Compiler, useClass: CompilerImpl, deps: [Injector, CompileMetadataResolver,
|
||||
TemplateParser, StyleCompiler,
|
||||
HtmlParser, TemplateParser, StyleCompiler,
|
||||
ViewCompiler, NgModuleCompiler,
|
||||
SummaryResolver, CompileReflector, CompilerConfig,
|
||||
Console]},
|
||||
|
Reference in New Issue
Block a user