В TypeScript я уже знаю, что вы используете вопросительный знак для пометки аргумента функции или свойства интерфейса как необязательного. Кроме того, TypeScript выдаст вам ошибки, если вы не установите необязательные значения при использовании функции или интерфейса.
Но TypeScript также позволяет использовать знак вопроса в свойствах class , например:
class MyClass {
propertyWithoutQuestionMark:string;
propertyWithQuestionMark?:string; // what's the difference?
}
Есть ли какая-либо разница между двумя вышеупомянутыми свойствами с точки зрения того, как TypeScript позволит вам использовать (не использовать) или класс в целом?
Все, что я нахожу в Интернете, похоже, говорит об аргументах функций и интерфейсах. Но не нашел объяснения, что это значит в свойствах CLASS .
Если возможно, пример кода будет полезен для демонстрации чего-то, где TypeScript сообщит об ошибке для одного из свойств, но не другого.