typescript - 断言所有剩余参数的类型保护不是未定义的
问题描述
是否可以创建一个用户定义的类型保护,让编译器知道传递给它的所有参数都已定义?
我想做这样的事情:
public static all(...values: unknown[]): values is object[] {
return values.every(value => typeof(value) !== 'undefined');
}
我想使用它,以便我可以传递一组可能未定义的参数,处理未定义时会发生的情况,否则将它们传递给需要未定义值的方法。
这可能看起来像这样:
if (!ParamHelper.all(id, ...dateParts)) { return []; }
const date = new Date(dateParts.join('-'));
const result = await this.service.getData(assetId, date);
当我尝试上面的幼稚版本时,编译器告诉我:
类型谓词不能引用休息参数
所以,我目前假设它无法完成。但是,我想在放弃之前我会问。
谢谢!
解决方案
推荐阅读
- reactjs - 在material-ui中将主要内容定位在appbars和drawers周围的正确方法是什么?
- reactjs - 当我单击删除按钮 reactjs 时没有任何反应
- javascript - 同一个选择器上的多个 Html 方法
- c - 缓存提供的空间局部性是指虚拟内存、物理内存还是两者兼而有之?
- python - 互信息的Tensorflow成对自定义损失
- r - R中与p值的多变量相关性
- angular - Angular惰性路由忽略父路径
- python - 如何简化 SSL DNS 验证?
- vidyo - 在 Vidyo.io 上使用 Vidyo Screen Share Chrome 扩展程序共享屏幕时出现问题
- c# - 从另一个项目组装