Mam wiele tabel w Lovefield i ich odpowiednie interfejsy dla kolumn, które mają.
przykład:
Zdobądź klucze interfejsu Maszynowego jako tablicę ciągów znaków
export interface IMyTable {
id: number;
title: string;
createdAt: Date;
isDeleted: boolean;
}
Chciałbym mają nazwy właściwości tego interfejsu w tablicy, jak to:
var IMyTable = ["id", "title", "createdAt", "isDeleted"];
nie można wprowadzić obiekt/układ oparty na interfejsie IMyTable
bezpośrednio co powinno wystarczyć, ponieważ będę dynamicznie otrzymywać nazwy interfejsów tabel. Dlatego potrzebuję do iteracji tych właściwości w interfejsie i uzyskać z niego tablicy.
Jak osiągnąć ten wynik.
masz na myśli jak to: 'var abc: IMyTable = {}; Object.keys (abc) .forEach ((key) => {console.log (key)}); ' –
Nie, ponieważ obiekt ten nie zawiera żadnych kluczy. Interfejs jest czymś, co używa TypeScript, ale odparowuje w JavaScript, więc nie ma już informacji informujących o "odbiciu" lub "introspekcji". Wszystkie JavaScript wie, że istnieje literalny obiekt pusty. Twoją jedyną nadzieją jest czekać (lub [zażądać] (https: // github.com/Microsoft/TypeScript/issues)) TypeScript zawiera sposób generowania tablicy lub obiektu ze wszystkimi kluczami w interfejsie do kodu źródłowego. Lub, jak mówi Dan Def, jeśli możesz użyć klasy, będziesz miał klucze zdefiniowane w postaci właściwości w każdym przypadku. – Jesper
Otrzymasz również błąd TypeScript w tym wierszu: 'var abc: IMyTable = { } 'ponieważ literał pustego obiektu nie jest zgodny z kształtem tego interfejsu. – Jesper