typescript - 使用 if 条件的窄类型
问题描述
代码:
function useQuery(key?: string) {
const searchMap = new URLSearchParams()
if(!key) {
return searchMap;
}
return searchMap.get(key)
}
const val1: string | null = useQuery('code') // type should be "string | null"
const val2: URLSearchParams = useQuery() // type should be "URLSearchParams"
对于var1
,TSC 抛出错误:
键入'字符串 | URL搜索参数 | null' 不可分配给类型 'string | 无效的'。类型“URLSearchParams”不可分配给类型“字符串”。(2322)
对于var2
,TSC 抛出错误:
键入'字符串 | URL搜索参数 | null' 不可分配给类型 'URLSearchParams'。类型“null”不可分配给类型“URLSearchParams”。(2322)
如何正确制作这两种类型?
解决方案
推荐阅读
- reactjs - 第 0 行:解析错误:React 应用程序中的数组长度无效
- pandas - 连接多行的字符串 - 第 2 部分
- flutter - 如何在 Flutter web 中使用 .env?
- java - 在 LWJGL 2 中隐藏创建的显示
- javascript - 为什么我在 JSON 文件中收到错误消息“SyntaxError: unexpected token: ':'”?
- java - 我可以用 ForEach 替换这个 For 循环吗
- jenkins - 在 groovy 脚本中获取 Jenkins 构建失败的原因
- php - 如何通过 phpword 库读取表格单元格内容
- javascript - 将图像从 React 发送到 Flask 的问题
- javascript - Firebase 和 VueJS:未捕获(承诺)DOMException:阻止了来源为“http://localhost:3000”的帧