typescript - 界面中的打字稿动态键
问题描述
我有一个我正在使用的 API,它允许您按平台搜索不同的游戏。我正在尝试为它们绘制适当的接口,但顶级对象键随每种搜索类型而变化。
HTTP 请求的响应给了我回...
ps4: {
data: [{
...
}]
OR...
xbox: {
data: [{
...
}]
OR...
switch: {
data: [{
...
}]
如您所见,顶级对象随每种类型的 HTTP 请求而变化,但数据本身保持不变。您如何为该键映射一个接口以动态更改?谢谢你。
解决方案
您可以为它定义一个接口,如下所示:
interface Response {
[key: string]: {
data: Object[]
}
}
或者更明确地说,您可以使用所有可能的键定义类型
type TKeys 'ps4' |'xbox' | 'switch';
type Response = {
[key in TKeys]: {
data: Object[]
}
}
您也可以考虑使用这样的enum
类型
enum Platforms {
ps4 = 'ps4',
xbox = 'xbox',
switch = 'switch'
}
type Response = {
[key in Platforms]: {
data: Object[];
};
};
推荐阅读
- visual-studio-code - 如何在 VSCode 中正确着色 HTML 标签
- c - 如何将 NULL 作为参数传递到我的程序中?
- tabulator - 制表符没有找到匹配选择器的元素
- google-apps-script - 谷歌脚本 - 字符串与单元格作为函数参数的问题
- python - 在 Python 中检查子类
- c# - 如何将变量严格键入为特定的 WMI 类?
- mips - MIPS 保存到地址为变量的寄存器
- c# - Azure 媒体服务、带有 V3 api 和 ODataQuery 的 GetLocators
- amazon-web-services - AWS ECS 找出容器的托管/父任务或任务定义
- python - 如果下一行在特定列中有 NaN,则连接 pandas 行