У меня есть метод в базовом абстрактном классе, который должен возвращать тот же тип параметра конструктора. Я не уверен, возможно ли это или даже имеет ли это смысл (возможно, я упускаю что-то очевидное).
Вот упрощенная версия того, что я пытаюсь сделать:
abstract class ValueObject {
private value: any;
constructor(value: any) {
this.value = value;
}
getValue() {
return this.value;
}
}
class UserName extends ValueObject {
constructor(name: string) {
super(name);
}
}
new UserName('some name').getValue(); // This has a type 'any', I want it to be the same type as I called super() with, in this case 'string', but could be any other type for different subclasses
Для меня это имеет смысл, поскольку я не могу на самом деле создать экземпляр абстрактного класса, поэтому мне нужен способ передачи типа, возвращаемого методом.
Возможно ли это? Имеет ли это смысл вообще? Должен ли я go для совершенно другого подхода?
Спасибо!