typescript - 使用 process.exit 进行 TypeScript 推理
问题描述
通常,TypeScript 可以在警卫的帮助下推断变量的类型,然后返回:
type Pet = Dog | Cat;
function isDog(pet: Pet): pet is Dog {
return true;
}
function fn1(pet: Pet) {
if (isDog(pet)) {
return;
}
// At this point, TS knows that `pet` is a `Cat`.
}
但是,如果我将 return 更改为process.exit
,这将不再起作用:
function fn2(pet: Pet) {
if (isDog(pet)) {
process.exit(1);
}
// At this point, we know that `pet` should be a `Cat`, but TS doesn't know.
}
process.exit
有没有办法让我以类似的方式向编译器发出程序将在之后结束的信号return
?
当然,我可以在process.exit
. 但是,在我的实际代码中,我的函数正在返回一些东西,调用它,因此当是 aMyObject
时没有合理的值,因此强制退出。pet
Dog
我知道我可以做一些类型断言来解决这个问题,但想知道什么是解决这个问题的好方法。
解决方案
推荐阅读
- mysql - 数值超出范围:1690 BIGINT UNSIGNED 值超出范围
- javascript - Redux 不更新状态
- google-sheets - 谷歌表格多个条件下的多个结果
- java - 如何确保函数在调用它的函数完成后运行?
- javascript - 我的导入/导出类代码行有什么问题?
- java - splitByWholeSeparator、splitPreserveAllTokens 和 splitByWholeSeparatorPreserveAllTokens 之间的区别
- javascript - 如何修复无法在 JavaScript 中加载资源?
- vue.js - Vue。使用本地存储自动保存输入值
- javascript - 通过ajax返回存储过程输出
- java - JDBC 连接池偶尔会通过 JNDI 变得不可用(未注册)