2016-07-09 7 views
0

Wie werden Runtime-Daten üblicherweise eingegeben? Zum Beispiel habe ich eine "Felder" -Daten, die Felder Daten aus einem Formular von Internet-Benutzer gesendet wird.Wie gehen Sie mit Laufzeitdatentypen um?

Wie tippen Sie es ein? Nur irgendwas?

Hier ist ein Beispiel Objekt, das ich von einem Formular Vorlage, aber ich kann verschiedene Formen haben, die jeweils mit ihren eigenen Feldern:

enter image description here

+0

Es ist am besten, wenn Sie ein Beispiel der Daten einschließen, die Sie beziehen, –

Antwort

0

Sie können dies tun:

interface Form {} 

interface FormOne extends Form { 
    email: string; 
    link: string; 
    title: string; 
    description: string; 
} 

Jedes Formular ist eine Schnittstelle, die die Basisschnittstelle Form erweitert.
Oder Sie können dies tun:

interface Form<T extends Fields> { 
    url: string; 
    fields: T; 
} 

interface Fields {} 

interface FieldsOne extends Fields { 
    email: string; 
    link: string; 
    title: string; 
    description: string; 
} 

Wo Sie brauchen nur die Fields Schnittstelle zu erweitern.

+0

Danke, das beschreibt tatsächlich den Typ richtig. Aber in einer Sprache wie Typoskript, wo Schnittstellen virtuell sind, macht es immer noch Sinn, Laufzeitdaten zu schreiben, wenn wir wissen, dass es zur Laufzeit nicht wichtig ist, was der echte Datentyp ist, da es keine Typprüfung gibt. –

+1

Es macht sehr viel Sinn, weil es Dinge für die Entwicklungszeit überprüft, es wird Sie wissen lassen (mit einem Fehler), wenn Sie versuchen, auf "myform.titl" zuzugreifen, wenn es "myform.title" sein sollte. Solange Sie Ihre Schnittstellen mit Ihren realen Daten auf dem neuesten Stand halten, ist es die Zeit absolut wert. Eine weitere Möglichkeit besteht natürlich darin, die Schnittstellen mit Klassen zu implementieren, die in die js-Ausgabe kompiliert werden –

Verwandte Themen