繁体   English   中英

无需初始化即可获取接口的可用属性

[英]Get available properties of interface without initializing

我正在尝试创建一个通用的“映射”方法,该方法可以采用接口和 JSON 响应,然后将可用键映射到接口。 我遇到的问题是似乎无法在不初始化的情况下获取接口的可用属性。

有没有办法获得接口的值而不必定义它?

接口和其他类型信息(有例外)在运行时不可用。

但是,您可以定义将 JSON 字符串反序列化为给定类型的方法。 const myThing: IThing = JSON.parse(myJsonString); 将其转换为IThing类型。

如果您有一个实现 IThing 的类Thing ,您可以使用Object.keys迭代实例化Thing的键,并将键索引匹配在一起,例如thing[key] = JSON.parse(...)[key]

typescript 中的interfacetypes只在编译时检查(从 ts 到 js)。 因此,在运行时(运行 js),没有关于接口的信息。

但是您可以像class-transformer一样使用classreflect-metadata以及decorators来实现这一点。

简单地将我的接口切换到一个类就是解决方案。 然后我就可以创建一个空白实例并列出所有可用的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM