我想要一个可以为数字或null的变量。这样做的目的是多次重置变量(将其设置为null)。问题是,如果我声明类型为number | null
的变量,则在我知道它是数字的情况下,不能像使用数字一样使用它。
代码如下:
class Test {
start: number | null = null;
handler(e: Event) {
if (this.start === null) {
this.start = Date.now();
}
let time = Date.now() - this.start;
if (time < 1000) {
this.start = null;
}
// ...
}
}
编译器说this.start
“可能为空”。我怎么能说对呢?否则,我的模式有问题吗?我应该使用布尔属性hasStarted
代替,因此start
始终是数字(或未定义的顺便说一句)吗?
答案 0 :(得分:-1)
将start: number | null
更改为start?: number
,以使编译器知道您知道它有时可能为null,并且您将对其进行处理。