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 retornothise 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

questionAnswers(2)

yourAnswerToTheQuestion