Я изо всех сил пытаюсь понять разницу между полем, определенным как string | undefined
и string?
В нашем текущем коде используются определения типа, подобные этому:
class Foo {
public bar: string | undefined;
}
При запускеэтот код через TSLint он примет к сведению и пожалуется на это:
Рассмотрите возможность использования '?'синтаксис для объявления этого свойства вместо «undefined» в его типе.
Теперь вопрос заключается в том, будет ли синтаксис ?
работать точно так же или есть тонкие различия, которые я пропускаю?
class Foo {
public bar?: string;
}
Итак, как мы сейчас используем тип string | undefined
в проверках, подобных этой:
if (foo.bar) {..}
Изменится ли это?
Кажется, документация о машинописиуглубленно рассказывает о необязательных типах, но не о том, как это ведет себя в контексте класса.