Vscode-ng-language-service: FEATURE: Prüfung des Bindungstyps für die Vorlageneingabe

Erstellt am 11. Aug. 2017  ·  7Kommentare  ·  Quelle: angular/vscode-ng-language-service

Wenn Sie nun die Eingabebindung für _Directive_ oder _Component_ verwenden, wird die Existenz der verwendeten Variablen überprüft, was perfekt ist. Bei dieser Prüfung wird jedoch nicht geprüft, ob Eingabe und zugewiesene Variable vom gleichen Typ sind.

Es wäre absolut perfekt, wenn es auch den passenden Typ prüfen würde oder ob es zuweisbar ist. Dies ist wahrscheinlich eine Anfrage für _@angular/language-service_.

Dankeschön

feature ivy lib

Hilfreichster Kommentar

Das ist meiner Meinung nach ein großes Thema.
Enge Typescript-Integration wird stark als Vorteil von Angular2+ vermarktet, aber in Wirklichkeit werden ~50% des Codes nicht wirklich typgeprüft. Wenn Sie sich die Übergabe von Eingaben an Komponenten als Funktionen vorstellen, bedeutet dies im Grunde, dass alle diese Funktionsaufrufe vollständig typfrei sind. Die Typisierung spielt nur innerhalb einer Komponente eine Rolle, während sie für die Kommunikation von Komponente zu Komponente völlig nutzlos ist, wo sie eigentlich nützlicher wäre.

Dies ist ein noch größeres Problem, da die Eingabe in dem Teil der App fehlt, der sich am häufigsten ändert.

An dieser Stelle hat React eine viel bessere Typoskript-Integration als Angular gegen das, was normalerweise angegeben wird.

Alle 7 Kommentare

Gibt es zu diesem Thema ein Update? Dies ist so ziemlich einer der wenigen Nachteile bei der Verwendung von angle : typesafe template binding.

Das ist meiner Meinung nach ein großes Thema.
Enge Typescript-Integration wird stark als Vorteil von Angular2+ vermarktet, aber in Wirklichkeit werden ~50% des Codes nicht wirklich typgeprüft. Wenn Sie sich die Übergabe von Eingaben an Komponenten als Funktionen vorstellen, bedeutet dies im Grunde, dass alle diese Funktionsaufrufe vollständig typfrei sind. Die Typisierung spielt nur innerhalb einer Komponente eine Rolle, während sie für die Kommunikation von Komponente zu Komponente völlig nutzlos ist, wo sie eigentlich nützlicher wäre.

Dies ist ein noch größeres Problem, da die Eingabe in dem Teil der App fehlt, der sich am häufigsten ändert.

An dieser Stelle hat React eine viel bessere Typoskript-Integration als Angular gegen das, was normalerweise angegeben wird.

Ich habe auch erwähnt, dass es keine automatische Vervollständigung für benutzerdefinierte Komponenteneingaben gibt. Was möglicherweise mit diesem Problem zu tun hat.

relevant, wahrscheinlich blockierend: https://github.com/Microsoft/TypeScript/issues/9879

Dies wird benötigt, da es _sehr_ fehleranfällig ist:

<button (click)="foo('bar')">Click me</button>

mit einer beschränkten Methode:

// take note of the parameter type, where the template passes through a string.
public foo(bar: boolean): void {
    // ...
}

Dies sollte zumindest eine Art Warnung sein.

Wenn fullTemplateTypeCheck in der Datei tsConfig fullTemplateTypeCheck auf true gesetzt wird, wird ng build Fehler melden, wenn es falsch ist, wird es einfach durchfallen.

Stimmt zu, dass dies ein großes Thema ist und im Sprachdienst benötigt wird. Diese Funktion wird verfügbar sein, wenn der Sprachdienst den Ivy-Compiler als Backend verwendet (daran wird gearbeitet).

Dies wurde durch den neuen Ivy-nativen Sprachdienst behoben , der in
Es ist vorerst eine Opt-in-Funktion, bitte probieren Sie es aus und lassen Sie uns wissen, wenn Sie Feedback haben.
Stellen Sie für ein optimales Bearbeitungserlebnis sicher, dass für Ihr Projekt strictTemplates in angularCompilerOptions aktiviert ist.
Falls Sie auf einen ähnlichen Fehler stoßen, reichen Sie bitte ein neues Problem ein. Ich schließe das vorerst.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen