1

我想在课堂上声明一个数字作为可选项,使用'?'运营商。Typescript'optional'(nullable)'?'语法不起作用(部分)

export class DummyClass { 
    dummyId?: number; 
} 

因为'; is expected. Unexpected token'错误,Visual Studio不让我编译。然而,当我例如声明一个函数或接口,它的工作没有问题:

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

是否有一些规则呢?或者Intellisense有问题?

+0

TypeScript没有'可空'的概念。请参阅http://stackoverflow.com/questions/17220114/how-to-declare-a-type-as-nullable-in-typescript –

回答

2

如果你不要求要设置的属性,你可以有:

export class DummyClass { 
    dummyId: number; 
} 

在这个例子中,dummyId是不确定的,直到有人设置一个值。本质上,属性不需要特殊的角色来说“你不必设置我”。

当你接受一个参数时,你可以使它成为可选项。对于方法和构造函数来说如此:

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

    } 


    doSomething(dummyId?: number) { 

    } 
} 
+0

接口也是如此。 –