问号 Typescript 变量

Question mark Typescript variable

提问人:Arjan 提问时间:12/21/2017 更新时间:7/15/2020 访问量:7873

问:

我见过这样的代码片段:

export interface IUser {
    email?: string;
    firstName?: string;
    lastName?: string;
}

但是,为什么变量名称后缀为问号呢?此代码片段是将 mongodb 与 Typescript 一起使用的示例的一部分。

答案可能在某个地方,但我似乎使用了错误的关键字,因为我找不到它。

MongoDB 打字稿 TypeScript2.0

评论


答:

1赞 mast3rd3mon 12/21/2017 #1

这意味着他们可以在那里,但不必在那里。它允许可选字段名称。它可能很常见。

一个示例用法是允许网站上的用户具有可选的显示名称。

0赞 Dmyto Holota 12/21/2017 #2

如果我没记错的话,它表明它是可选的,这意味着它可以是空的。

16赞 Burt_Harris 12/22/2017 #3

在 TypeScript 中,是 的简写。<name>?: <typename><name>: <typename> | undefined

这向类型系统指示符号可能包含指示类型的值,或者它可能包含该值(类似于 )。undefinednull

当启用(TypeScript 2 中的新功能)选项时,这一点很重要。有关 Null 和未定义感知类型选项的文档可能是您应该开始了解为什么它有用的位置。--strictNullChecks