В TypeScript, почему это не ошибка доступа (get), у которой есть только сеттер?

Почему это компилируется? (TS v2.0.3)

class SetterOnly {
  set prop(v) {
    let x = this.prop;
  }
}

Я ожидал бы this.prop для генерации ошибки времени компиляции...

Ответ 1

Это известная проблема: https://github.com/Microsoft/TypeScript/issues/814

Мы определенно не беспокоимся свойствами записи. Это недостаточно распространено, чтобы оправдать усложнение системы типов.

Ответ 2

TypeScript в настоящее время не имеет понятия writeonly. Просто потому, что для этого не было большого спроса. Однако он имеет readonly:

class ReadOnly {
  get prop() {return 123}
}

const readonly = new ReadOnly();
readonly.prop = 123; // Error