#typescript #generics
Вопрос:
У меня есть простой код, как указано ниже. Я хочу автоматически создавать экземпляры предоставляемых универсальных типов и просто создавать несколько служб, работающих с разными типами внутри.
Все конструкторы имеют параметры.
Это легко в C#, но как это сделать в TypeScript?
export class MyClassA {
constructor(data) {
}
}
export class MyClassB {
constructor(data) {
}
}
export class BaseService<TTypeA, TTypeB> {
typeA: TTypeA;
typeB: TTypeB;
constructor(data) {
// How to create instances of typeA and typeB?
typeA = new TTypeA(data);
typeB = new TTypeB(data);
}
}
export class DataService extends BaseService<MyClassA, MyClassB> {
constructor(data) {
super(data)
}
doSomething() {
// Accessing data
// this.typeA ...
// this.typeB ...
}
}
const data: any = {};
const service = new DataService(data);
Я обнаружил, что мне нужно поместить некоторые параметры создателя типов в конструктор, чтобы получить тип во время компиляции, но как?