代码之家  ›  专栏  ›  技术社区  ›  Arjan

问号Typescript变量

  •  8
  • Arjan  · 技术社区  · 7 年前

    我见过这样的代码片段:

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

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

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

    3 回复  |  直到 7 年前
        1
  •  16
  •   Burt_Harris    4 年前

    在TypeScript中, <name>?: <typename> 缩写 <name>: <typename> | undefined .

    这向类型系统指示符号 也许 包含指定类型的值或 也许 包含值 undefined (这就像 null ).

    当(TypeScript 2中的新内容) --strictNullChecks 选项已启用。有关的文档 Null- and undefined-aware types 选项可能是您应该开始理解为什么这很有用的地方。

        2
  •  1
  •   mast3rd3mon    7 年前

    这意味着他们可以在那里,但不一定要在那里。它允许选择字段名。它可以很常用。

    例如,允许网站上的用户具有可选的显示名称。

        3
  •  0
  •   Dmyto Holota    7 年前

    如果我没有弄错,那么它表示它是可选的,这意味着它可以为null。