【发布时间】:2020-11-02 20:11:29
【问题描述】:
问题陈述:
我无法为yield call() 指定类型。 yield 正在调用从服务器获取一些数据的 API。数据类型为ServerResponse。我想要做的是指定类型如下:
const response: ServerResponse = yield serverCall();
但是我的 Typescript 抛出了这个错误:Redux Saga: Type 'unknown' is not assignable to type 'ServerResponse'。
代码:
function* serverSaga(): Generator {
try {
// TS throws error here;
const response: ServerResponse = yield serverCall();
...
...
} catch (err) {
...
}
}
const serverCall = async (): Promise<ServerResponse> => {
try {
const response = await ...
return response;
} catch (err) {
...
}
};
【问题讨论】:
-
Generator是一个泛型。你应该写类似serverSage(): Generator<some, cool, types>{}的东西。我忘了哪个参数是哪个。 -
@zero298 如果您能告诉我有关参数的信息 ????
-
你能发更多的
serverSaga吗?它是否返回任何东西或产生任何其他yields?这些也会影响生成器的类型。如果您使用的是 VSCode,请删除返回类型并查看它自动生成的内容。以此作为回报的基础。 -
@zero298 是的,
serverSaga也确实产生了更多yields。而且 VS 代码不会自动为函数生成返回类型。
标签: javascript reactjs typescript react-redux redux-saga