打字稿'可选'(可为空)'?语法不起作用(部分)

Posted

技术标签:

【中文标题】打字稿\'可选\'(可为空)\'?语法不起作用(部分)【英文标题】: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 有问题?

【问题讨论】:

TypeScript 没有“可为空”的概念。见***.com/questions/17220114/… 【参考方案1】:

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

export class DummyClass 
    dummyId: number;   

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

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

export class DummyClass 
    constructor(public dummyId?: number) 

    


    doSomething(dummyId?: number) 

    

【讨论】:

接口也是如此。

以上是关于打字稿'可选'(可为空)'?语法不起作用(部分)的主要内容,如果未能解决你的问题,请参考以下文章

反应打字稿打字不起作用

打字稿异步/等待不起作用

打字稿重载箭头功能不起作用

打字稿导入模块作为变量不起作用

用于构建打字稿的 NPM 脚本不起作用

nodejs和打字稿中的Prisma事务不起作用