javascript / expert
Snippet
Fortgeschrittene strukturelle Direktiven mit statischer Template-Absicherung
Strukturelle Direktiven können eine statische Methode namens 'ngTemplateContextGuard' verwenden, um dem Angular-Compiler Typinformationen über den Template-Kontext bereitzustellen. Dies ermöglicht eine strikte Typprüfung innerhalb des Templates (z. B. in einem *appAuth-Block) für die '$implicit'-Eigenschaft und andere Kontextmitglieder.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
interface UserContext<T> { $implicit: T; appAuth: string; }@Directive({ selector: '[appAuth]' })export class AuthDirective<T> {// Static guard for template type checkingstatic ngTemplateContextGuard<T>(dir: AuthDirective<T>,ctx: any): ctx is UserContext<T> { return true; }constructor(private tr: TemplateRef<UserContext<T>>) {}}
angular
Erklärung
1
static ngTemplateContextGuard<T>(...): ctx is UserContext<T>
Ein TypeScript-Typ-Prädikat, das dem Compiler die Struktur des im Template verwendeten Kontext-Objekts mitteilt.
2
constructor(private tr: TemplateRef<UserContext<T>>)
Injeziert das Template mit einem spezifischen Kontext-Typ, um interne Konsistenz zu gewährleisten.