typescript - 打字稿从函数中设置值类型
问题描述
这可能很简单,但我找不到答案,感谢任何帮助!我试图让一个函数为一个变量断言一个值类型,我想知道这是否可以通过打字稿:
检查不为空
function isNull(val: any) {
return val == null
}
function fn( val: string | null ) {
// if (val == null) return // works
if (isNull(val)) return // doesn't work
val.split(",")
}
检查 var 是否为数字
function isNumber(val: any) {
return val == "number"
}
function fn2( val: string | number ) {
// if (typeof val == "number") return // works
if (isNumber(val)) return // doesn't work
val.split(",")
}
解决方案
使函数类型保护,以向 TypeScript 编译器指示返回的真实值表明参数是特定类型:
function isNull(val: any): val is null {
return val == null
}
function isNumber(val: any): val is number {
return typeof val == "number"
}
(请注意,您需要使用typeof val
,而不仅仅是val
在isNumber
那里)
推荐阅读
- reactjs - Ionic React props.match.params 不更新
- javascript - justify-content 没有预期的行为,我做错了什么?
- azure-devops-rest-api - 使用 API 创建 Azure DevOps 项目时出现随机超时
- javascript - Javascript 音频不会停止并同时播放多个曲目
- python - Grist:从另一个表中查找值
- c++ - 无法使用模板上的功能
- vue.js - 如何在 v-select 组件中获取键入的值?
- python-3.x - 在 Airflow 中将 txt 文件写入磁盘不起作用
- javascript - 如何通过 React 中的函数触发复选框 onChange 事件?
- c# - Unity 3D - 如何在 Mouselook 脚本中使用 LateUpdate?