Почему это не ошибка синтаксиса / времени компиляции? - PullRequest
0 голосов
/ 30 апреля 2018

Я случайно набрал : вместо = в строке 2 этого фрагмента кода.

Почему это допустимый Typescript? Разве двоеточие не должно ожидать известное объявление типа в определении свойства?

Я уверен, что где-то в спецификации TS это разрешено, но какова цель ?

export class CategoriesService {
  private _url : "http://localhost:3000/someurl"; // ???????????

  constructor(private http: Http) {}

  getData(): Observable<Category[]> {
    return this.http.get(this._url).map(res => res.json()); //fails here, as _url is undefined
  }
}

1 Ответ

0 голосов
/ 30 апреля 2018

Это типы Строковые литеральные типы , которые полезны в контексте типов объединений, особенно в распознаваемых объединениях , которые можно использовать для имитации сопоставления с образцом, обнаруженного в функциональных языках программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...