javascript - Angular/Typescript få string[] från klassnycklar/gränssnitt/typ? ts-transformer-keys fungerar inte med angular
Så jag har ett externt paket med modeller/gränssnitt publicerat via npm, det är byggt med typegoose + mongoose, så jag kan ha mina gränssnitt på ett ställe och sedan använda gränssnitten/modellerna över flera appar samtidigt som jag håller dem synkroniserade.
Här är ett exempel på en modell/klass.
Nu är problemet att jag skapar några dynamiska tabeller på frontend för att fungera med antingen samlingen, så jag försöker hitta ett sätt att få nycklarna som strängar samtidigt som jag håller allt dynamiskt på ett ställe.
Hittills har jag försökt med ts-transformer-keys men på grund av att man måste implementera vissa saker kring kompileringstid, kommer det inte att fungera i Angular.
Jag kan inte heller använda klassen direkt i Angular på grund av att klassen ärver Typegoose som beror på mongoose vilket ger ett fel om någon global sak och sedan kraschar hela appen.
Där User är min klass som utökar Typegoose och IUser är typen från den klassen, saker som:
class test extends User {}
har fortfarande beroendeproblem med Mongo
class test implements User{}
behöver fortfarande lägga till alla egenskaper manuellt
Object.keys(User)
mongoose-beroende kommer att orsaka ett fel
Object.keys(IUser)
fungerar inte eftersom typen inte existerar vid körning;
Kanske en dekoratör på klassen som loopar över alla nycklar och lägger till konstruktörens namn till klassens prototyp? Det verkar inte sannolikt att det fungerar vid körning.
För framtida läsare, läs detta GitHub-ärende, TL;DR: Typegoose stöder för närvarande inte klient-sidans klasser