gpt4 book ai didi

javascript - 测试变量类型或抛出 TypeScript 的函数?

转载 作者:行者123 更新时间:2023-11-30 10:58:33 26 4
gpt4 key购买 nike

我想要一个函数来测试类变量是否不是 null 并在后续函数调用中使用它。但是得到了 TS 的投诉。封装这个验证函数,因为我需要在我的许多方法中调用它。

class A {
point: Point | null
validatePoint() {
if (!this.point) throw new Error()
}

update(p: Point | null) {
this.validatePoint()
// ts complains this.point can be null
doSomething(this.point)
}
}

最佳答案

Typescript 3.7 引入了 assertions in control flow analysis :

class A {
point: Point | null = null;
validatePoint(): asserts this is { point: Point} {
if (!this.point) throw new Error()
}

update(p: Point | null) {
this.validatePoint()
// now ts is sure that this.point can't be null
doSomething(this.point)
}
}

Playground

关于javascript - 测试变量类型或抛出 TypeScript 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59015650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com