我有一个看起来像这样的JSON“媒体”对象:
const media = [{
"0": {
"small": "",
"large": ""
}
}];
我必须这样输入:
export interface Media {
0: {
large: string
medium: string
small: string,
type: string
}
}
为了能够通过进行访问element[0].small
。
我正在使用的所有JSON对象都如下所示,其索引等于0
,这不是很有用,但是我无法更改它。
我有什么办法可以通过访问我的财产element.small
吗?
您可以转换JSON对象并以简化形式使用它们:
const clean = (elem) => elem[0];
您还可以在执行此操作时获得打字稿的类型支持,例如,可以使用泛型进行定义:
export interface Raw<T> {
0: T
}
const transform = <T>(raw: Raw<T>): T => raw[0];
这样,您可以通过Raw<The_Interface_I_Want>
;键入JSON输入。
然后,您可以仅为相关信息定义接口:
export interface Media {
large: string
medium: string
small: string,
type: string
}
然后您可以像这样使用它:
const rawMedia: Raw<Media> = {
0: {
"large": "large",
"small": "small",
"medium": "medium",
"type": "type"
}
};
const media: Media = transform<Media>(rawMedia);
这样做的好处是,您始终可以进行类型推断并以这种方式获得自动完成功能。从理论上讲,您还可以根据需要自定义转换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句