TypeScript: tipo de retorno de referência automática para métodos estáticos na herança de classes
ComPolimórfico isso no TypeScript 1.7, como descobriaqui, podemos definir um método em uma classe com um tipo de retornothis
e automaticamente, quaisquer classes que estendem essa classe e herdam os métodos, terão seus tipos de retorno definidos para seus respectivosthis
tipo. Igual a:
class Model {
save():this { // return type: Model
// save the current instance and return it
}
}
class SomeModel extends Model {
// inherits the save() method - return type: SomeModel
}
No entanto, o que estou procurando é ter uma herançastatic
método com um tipo de retorno referenciando a própria classe. É melhor descrito no código:
class Model {
static getAll():Model[] {
// return all recorded instances of Model as an array
}
save():this {
// save the current instance and return it
}
}
class SomeModel extends Model {
// inherits the save() method - return type: SomeModel
// also inherits getAll() - return type: Model (how can we make that SomeModel?)
}
Talvez eu tenha que pensar em uma maneira diferente de implementar isso, uma vez que polimórficosthis
no TypeScript 1.7 não suportastatic
métodospor design.
EDITAR: Acho que veremos como esse problema do Github se encerra:https://github.com/Microsoft/TypeScript/issues/5863