TypeScript: возвращаемый тип с самообращением для статических методов в наследуемых классах

СПолиморфный это в TypeScript 1.7, как я обнаружилВотмы можем определить метод в классе с типом возвратаthisи автоматически, любые классы, которые расширяют этот класс и наследуют методы, будут иметь свои возвращаемые типы, соответствующие их соответствующимthis тип. Вот так:

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
}

Тем не менее, я хочу иметь наследственноеstatic метод с возвращаемым типом, ссылающийся на сам класс. Это лучше всего описано в коде:

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?)
}

Возможно, мне придется думать о другом способе реализации этого, так как полиморфныйthis в TypeScript 1.7 не поддерживаетstatic методыпо дизайну.

РЕДАКТИРОВАТЬ: Я думаю, мы увидим, как эта проблема Github заканчивается:https://github.com/Microsoft/TypeScript/issues/5863

Ответы на вопрос(2)

Ваш ответ на вопрос