Для чего нужен знак вопроса в имени параметра Typescript

export class Thread {
  id: string;
  lastMessage: Message;
  name: string;
  avatarSrc: string;

  constructor(id?: string,
              name?: string,
              avatarSrc?: string) {
    this.id = id || uuid();
    this.name = name;
    this.avatarSrc = avatarSrc;
  }
}

Вid? что это? за?

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

Решение Вопроса
 Fidan Hakaj17 февр. 2017 г., 11:10
Это не связано с TypeScript. Я видел такой синтаксис в проектах RxJs. Из документа: это «общее соглашение RxJS для определения переменных, которые ссылаются на поток».github.com/redux-observable/redux-observable/blob/master/docs/...
 java-addict30102 июл. 2019 г., 21:53
@SunilGarg $ postfix - это обычно соглашение об именах, означающее, что переменная является наблюдаемой.
 Sunil Garg17 февр. 2017 г., 11:02
Я видел символ $ в конце имен переменных. Что это значит?

Это сделатьпеременная необязательного типа. В противном случае объявленные переменные показываютне определено"если эта переменная не используется.

export interface ISearchResult {  
  title: string;  
  listTitle:string;
  entityName?: string,
  lookupName?:string,
  lookupId?:string  
}
 user27664826 окт. 2017 г., 15:42
Я думаю, что правильное имя «необязательный параметр». Обнуляемый тип будетstring?, Чтобы иметь необязательный nullable, вы должны сделатьname?: string?.
 Josh Gallagher02 окт. 2017 г., 17:44
Я не согласен, что это указывает на «обнуляемый» тип. Это указывает на необязательный, не обнуляемый Это по-прежнему действует, например, дляtitle в приведенном выше примере, чтобы иметь значениеnull но это было бы неверно для класса, который претендует на реализациюISearchResult пропуститьentityName собственность во время компиляции.
 user146004314 сент. 2018 г., 11:19
@DvG Не могли бы вы улучшить свой ответ, учитывая комментарии Джоша Галлахера и пользователя 276648?
 DvG14 сент. 2018 г., 11:22
@ user1460043 .. Я обновил свой ответ. Спасибо за уведомление

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