Wirklich neu in TypeScript. Ich habe eine Reihe von Voreinstellungen, die der Benutzer hinzufügen oder ändern kann. Da es nur ein paar Tasten hat, habe ich eine Schnittstelle erstellt.Akzeptieren Array von Schnittstellen ODER einzelne Schnittstelle in TypeScript
interface IStylePreset {
type : string;
backgroundColor : string;
color? : string
}
Und die Umsetzung ist hier:
static stylePresets : Array<IStylePreset> = [
{ type: "default", backgroundColor: "#37474f" , color: "#ECEFF1"},
{ type: "success", backgroundColor: "#37474f", color: "#ECEFF1" },
{ type: "error", backgroundColor: "#d32f2f", color: "#EEE"}
];
Jetzt habe ich eine Config-Funktion, die eine benutzerdefinierte Vorgabe nimmt entweder vorhandene Voreinstellungen ändern oder neue hinzufügen.
static config = {
types(newPresets) : void {
newPresets = [].concat(newPresets);
for(var i = 0, len = newPresets.length, current; i< len; i++){
var pos = Message.Util.find(Message.stylePresets, newPresets[i].type)
current = newPresets[i];
if(pos !== -1) for(var key in current) Message.stylePresets[pos][key] = current[key];
else Message.stylePresets[Message.stylePresets.length] = current;
}
}
};
Das Problem ist, kann ich nicht herausfinden, was in der Art der newPresets
zu spezifizieren, da es sowohl eine Reihe von Objekten und auch als ein einziges Objekt zu akzeptieren (die zu einer einzigen Elementanordnung macht newPresets = [].concat(newPresets);
) .
Ich versuche, TypeScript zu lernen, und ich weiß nicht, ob das, was ich mache, richtig ist. Kann mir bitte jemand hier helfen? Weiterführende Literatur oder Dokumente wären Gold.
Es wurde darauf hingewiesen, dass die Frage ein Duplikat ist so bin ich Ich stimme es ab. –