То, что я пытаюсь сделать, это сопоставить пары ключ-значение со свойствами нескольких классов. Не все классы имеют все сопоставленные свойства, и пары значений ключей не обязательно являются уникальными для каждого класса.
I sh Я мог бы включить пример кода, но, честно говоря, не знаю, с чего начать. В то время как я видел, как другие фреймворки делают что-то подобное ( NGXS передает функцию декоратору ), я не думаю, что обратный инжиниринг их - лучший способ действий. Если я объявлю следующий класс:
class MyClass {
@map("map-1")
firstName: string;
@map("map-2")
lastName: string;
}
Я хотел бы иметь возможность сделать что-то вроде:
const foo: Array<KeyValuePair<string,string>> =
[
new KeyValuePair("map-1", "Erik"),
new KeyValuePair("map-2", "Philips"),
];
var myClass: MyClass = someFunction<MyClass>(new MyClass(), foo);
// or
var myClass = someFunction(new MyClass(), foo);
console.log(myClass.firstName); // "Erik"
console.log(myClass.lastName); // "Philips"
Меня не интересует, кто создал класс, не уверен, если легче, если класс создан функцией или нет. Меня не очень беспокоит, нужно ли менять подпись декораторов.