function isUndefined (payload: any): payload is undefined | void {
return payload === undefined
}
在TypeScript中,我有一个可以返回某些内容或undefined
或void
的函数。
类似于事件处理程序,可以返回修改后的有效负载,或者开发人员可以选择不返回任何内容或在它们不会修改有效负载的情况下未定义:
function eventHandler <T extends {[key: string]: any}> (payload: T): Modified<T> | undefined | void { // ... implementation }
然后我有一个类型检查器,需要检查它是否返回除void或undefined之外的其他内容:
const result = eventHandler(payload) if (result !== undefined) { // we have a modified payload! }
但是,上面的代码段我得到一个错误,因为它说即使
result !== undefined
仍然可以是void
?
我认为这很特别,因为void
应该与undefined
相同。
所以我做了解决这个问题的类型检查器:
function isUndefined (payload: any): payload is undefined | void { return payload === undefined }
这解决了我的问题,但我的问题是:
这样可以吗?还是不好的做法?
TLDR;这个可以吗?还是不好的做法?函数isUndefined(有效载荷:任意):有效载荷未定义|无效{返回有效载荷===未定义}上下文在TypeScript中,我有一个函数可以...
void
不是undefined
。 void
表示没有返回值。 undefined
是在运行时未定义的值的类型。
我认为您正在使它变得更加复杂。返回void
的函数可以: