Was ist der richtige Weg ist, eine Situation zu handhaben, wo Sie zwei Schnittstellen haben, die ähnlich genug sind, dass man sie durch das gleiche Stück Logik ausgeführt werden soll:Typoskript Union Arten: Der Umgang mit Schnittstellen
interface DescriptionItem {
Description: string;
Code: string;
}
interface NamedItem {
Name: string;
Code: string;
}
function MyLogic(i: DescriptionItem | NamedItem) {
var desc = (<DescriptionItem>i).Description || (<NamedItem>i).Name;
return i.Code + ' - ' + desc;
}
Dies funktioniert; Meine Frage betrifft jedoch die Verbesserung der var desc = ...
Linie. Ist das, was ich über die beste Option habe? Oder gibt es einen besseren Weg, um mit dieser Situation in Typoskript umzugehen?
Ich würde sagen, so, wie Sie es taten sieht gut aus:
Wenn Sie jedoch die Flexibilität haben Ihre
interfaces
-classes
zu ändern, können Sie Typoskript des Typs Wachen zu tun elegantere Typprüfung verwenden. Die Frage selbst ist jedoch in erster Linie meinungsbezogen, und ich werde dafür stimmen, auf dieser Grundlage zu schließen. :) – toskv