我正在尝试在 React 中创建一个钩子(Hook),它从 rxjs observable 返回值,但没有对 rxjs 库的硬依赖。
因此我创建了一个通用接口(interface),它描述了我将与之交互的可观察对象 API 的一部分。
export interface GenericSubscribable<T> {
subscribe: any
}
export const useObserverable = <T>(
s: GenericSubscribable<T>
): T => {
// the points don't matter
return {} as any
};
但是在食用时
import { interval } from 'rxjs'
const counter = interval(1000) // Observable<number>
const shouldBeNumber = useObserverable(counter)
shouldBeNumber
出现为 <unknown>
而不是 <number>
.
为什么会这样?
最佳答案
感谢@see sharper 的见解。我看错了值 以下示例有效
export interface GenericSubscribable<T> {
subscribe: (cb: ((value: T) => any)) => any
}
export const useObserverable = <T>(
s: GenericSubscribable<T>
): T => {
return {} as any
};
关于typescript - 使用与目标类型分离的接口(interface)时,泛型函数返回 <unknown> 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404210/