Typescript的新手,不确定如何实现。
我正在使用React使用此库https://devexpress.github.io/devextreme-reactive/react/grid/docs/guides/getting-started/
构建一个组件-一个表说我有一些服务可以获取一些数据:
const { data, error, loading, refetch } = songService.get(queryOptions);
我想在表组件本身中调用此服务,但是我不希望它局限于仅从songService
获取数据。我想从道具传递的任何服务中获取它-所以我在想:
<DXTable serviceFromData="songService" />
或<DXTable serviceFromData="coverService" />
但是我有2个问题/不确定性:
-serviceFromData
道具是哪种类型?我希望它是通用的。
-如何确保我的const queryOptions
具有基于服务的特定界面?
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:1)
我将为每个服务创建一个接口,并让它们扩展一个公共接口。
在这里,您有两个选择:
1. serviceFromData
可以采用通用接口的类型,因此有点通用
2. serviceFromData
可以采用类似Service1 | Service2
您可以通过将所需的类型添加到服务类中的queryOptions
之类的get()
方法中来确保get(queryOptions:SomeInterface)
是特定的接口。