【问题标题】:Typescript 'optional' (nullable) '?' syntax not working (partially)打字稿'可选'(可为空)'?语法不起作用(部分)
【发布时间】:2015-03-11 10:40:12
【问题描述】:

我想在一个类上声明一个可选的数字,使用“?”运算符。

export class DummyClass {
    dummyId?: number;   
}

Visual Studio 不允许我编译,因为 '; is expected. Unexpected token' 错误。但是,当我例如声明一个函数或接口,它可以正常工作:

void(sup?: number) {} // nothing to complain here

这方面有什么规定吗?还是 Intellisense 有问题?

【问题讨论】:

标签: c# visual-studio visual-studio-2013 typescript intellisense


【解决方案1】:

如果您不需要设置该属性,则可以:

export class DummyClass {
    dummyId: number;   
}

在这个例子中,dummyId 在有人设置值之前是未定义的。本质上,属性不需要特殊字符来表示“你不必设置我”。

当您接受一个参数时,您可以将其设为可选。方法和构造函数也是如此:

export class DummyClass {
    constructor(public dummyId?: number) {

    }


    doSomething(dummyId?: number) {

    }
}

【讨论】:

  • 接口也是如此。
猜你喜欢
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 2018-03-10
  • 2021-12-16
  • 2023-01-20
  • 2018-10-17
  • 2020-03-17
  • 2019-11-06
相关资源
最近更新 更多