问号Typescript变量

Arj*_*jan 7 mongodb typescript typescript2.0

我看过如下代码片段:

export interface IUser {
    email?: string;
    firstName?: string;
    lastName?: string;
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么在变量名后加问号呢?此代码段是将Mongodb与Typescript结合使用的示例的一部分。

答案可能在某处,但由于找不到,我似乎使用了错误的关键字。

Bur*_*ris 12

在TypeScript中,<name>?: <typename>的简写形式<name>: <typename> | undefined。它向类型系统指示符号可能包含所指示类型的值,也可能包含该值undefined(类似于null)。

--strictNullChecks启用(TypeScript 2中的新功能)选项时,这一点很重要。有关Null和undefined-aware类型选项的文档可能是您应该开始了解它为何有用的地方。