Dado:
class BaseClass<T extends string | number> { public myFunc(): T = {} }
Posso me especializar fazendo isso:
class StringBaseClass extends BaseClass<String> { }
e crie uma nova instância e chame myFunc
via:
new StringBaseClass().myFunc()
Não sei por que, mas sempre pensei que você poderia obter essa especialização por meio de algum tipo de alias de tipo que é apagado por tipo e que na verdade não cria um tipo de classe totalmente novo, mas ainda me permitiria criar instâncias deStringBaseClass
Essa funcionalidade existe? (Talvez eu esteja lembrando dela de outra linguagem - Scala talvez?)
Você está procurando uma expressão de instanciação , introduzida no TypeScript 4.7 :
que você pode usar
new StringBaseClass()
para criar instâncias do tipoBaseClass<string>
.Ou se você realmente quiser apenas um alias de tipo, você pode, é claro, escrever
mas você ainda teria que criar instâncias via
new BaseClass()
.Você pode criar uma variável
Parque infantil