我正在努力理解将字段定义为string | undefined和string?
我们当前的代码使用这样的类型定义:
class Foo {
public bar: string | undefined;
}
Run Code Online (Sandbox Code Playgroud)
当通过 TSLint 运行此代码时,它会注意到并抱怨它:
考虑使用“?” 在其类型中声明此属性而不是 'undefined' 的语法。
现在的问题是使用的?语法是否完全相同,还是我遗漏了细微的差异?
class Foo {
public bar?: string;
}
Run Code Online (Sandbox Code Playgroud)
所以我们string | undefined现在如何使用类型是在这样的检查中:
if (foo.bar) {..} 这会改变吗?
似乎打字稿文档深入探讨了可选类型,但并未真正探讨它在类上下文中的行为方式。