javascript - 如何修复“TS2769:没有超载匹配此调用”
问题描述
包更新后,我突然收到奇怪的打字稿错误:
[tsl] C:..\UI\src\sagas.ts(40,21) TS2769 中的错误:没有重载匹配此调用。
最后一个重载给出了以下错误。'"LOAD_IDS"' 类型的参数不可分配给 'TakeableChannel' 类型的参数。
对应的39-41行sagas.ts
是
function* watchIds() {
yield takeEvery(Actions.LOAD_IDS, loadIds);
}
该函数function* loadIds({ forceReload })
在相同sagas.ts
的 API 调用中定义。
TS 错误是什么意思,我该如何解决?
我的
packages.json
样子是这样的:https ://pastebin.com/raw/nJ0cPNXb也许也很重要:我
webpack.config.js
的是https://pastebin.com/raw/JNdXTCMb
参考
解决方案
我也遇到了这个问题,但是我问了我的同事,了解了以下解决方案:
redux-saga 需要TakeableChannel<unknown>
. 这是一个动作,所以你声明 loadIds 的参数类型是这样的动作形状:
function* loadIds({
forceReload
}: {
type: string;
forceReload: any; // your forceReload type
}) {
// your code
}
推荐阅读
- python - DataFrame eval 在表达式中使用函数名
- django - Pythonanywhere:用户'Ujwal97'@'10.0.04'的访问被拒绝(使用密码:YES)Django
- r - 使用 mclapply 时 HTML 页面未保留在列表中
- c# - c#中如何将字符转换为字符串
- javascript - 如何在单击时从另一个兄弟组件中增加一个值?
- java - java新版本中是否对转义序列(\r,\f,\b)属性有任何修改
- ajax - 使用 disqus 插件注册时遇到错误验证码挑战
- c - 为什么将 scanf() 的结果与 NULL 进行比较会产生编译器警告?
- javascript - 无法从 apollo-server-express 获取功能
- java - 如何使用 Firebase 数据库和不同的 ViewHolder 根据类型(视频、文本、图像)恢复数据?