打字稿“可选”(可为空)“?”语法不起作用(部分)
本文关键字:语法 部分 不起作用 可选 | 更新日期: 2023-09-27 18:37:24
我想使用"?"运算符将类上的一个数字声明为可选。
export class DummyClass {
dummyId?: number;
}
Visual Studio不允许我编译,因为'; is expected. Unexpected token'
错误。但是,当我例如声明一个函数或接口时,它可以毫无问题地工作:
void(sup?: number) {} // nothing to complain here
对此有一些规定吗?还是智能感知有问题?
如果您不需要设置该属性,则可以拥有:
export class DummyClass {
dummyId: number;
}
在此示例中,在有人设置值之前,dummyId
是未定义的。从本质上讲,属性不需要特殊字符来表示"您不必设置我"。
接受参数时,可以将其设置为可选。方法和构造函数也是如此:
export class DummyClass {
constructor(public dummyId?: number) {
}
doSomething(dummyId?: number) {
}
}