gpt4 book ai didi

typescript - Redux 传奇使用具有通用函数类型 typescript 的调用效果

转载 作者:行者123 更新时间:2023-12-01 21:54:52 25 4
gpt4 key购买 nike

我目前正在使用 Redux-saga 和 typescript 。但是我不知道如何在 Typescript 中使用 call 效果和 generic function type

例如。我有一个像这样的泛型函数:

function identity<T>(arg: T): T {
return arg;
}

而且,在 saga 中,我期望这样的代码:

...
const result = yield call(identity<string>, "myString")
...

但是编译器显示错误。当然可以写

const result = yield call(identity, "myString")

但这不是我的期望。我怎么知道有什么方法/语法可以满足我的上述期望?

最佳答案

可能的解决方案是定义 identity 的类型函数并用它来专门化call调用。

type identityFunction<T> = (agr: T) => T;

并为 call 提供类型功能

yield call<identityFunction<string>>(identity, 'myString');

现在,如果您尝试调用 yield call<identityFunction<string>>使用错误的参数(如果身份函数的签名与类型不匹配 identityFunction<T> ),TypeScript 将显示错误。

关于typescript - Redux 传奇使用具有通用函数类型 typescript 的调用效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58470876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com