【发布时间】:2020-11-01 09:30:57
【问题描述】:
我有一个结果 JSON 对象被传递给一个函数,我需要根据 Typescript 接口定义模型检查它的类型,以便在显示它之前执行特定的渲染更改。
我面临一个问题,字符串在通过检查时匹配所有接口类型,使用 (jsonResult as TypeScriptInterfaceName) 并且随后根本不提供正确的值。
我也尝试了类转换器库,但没有成功。根据打字稿定义显式检查字符串并使其失败的最佳方法是什么。
谢谢。
interface ParentOne {
id: string;
title: string;
child: Child
}
interface Child {
id: string;
title: string;
}
**JSON ONE**
{
id: value,
title: value,
child: [{}],
}
interface ParentTwo {
id: string;
title: string;
directory: Directory
}
interface Directory {
id: string;
title: string;
}
**JSON TWO**
{
id: value,
title: value,
directory: [{}],
}
【问题讨论】:
-
能否添加一些示例 JSON 数据、Type 接口和错误消息?
-
@codingwithmanny 我试图简单地使用以下方法: if (JSON ONE as ParentOne) { do something } else if (JSON TWO as ParentTwo) { do another }
-
JSON 是一个字符串,所以检查类型是没有意义的。如果您的意思是检查解析的 JSON,那么您说的是 JavaScript 对象,而不是 JSON。
-
您在运行时没有这些类型,因此您无法在运行时检查它们。
-
@Victory 感谢您的提示。那么处理这种情况的最佳方法是什么。在以这种方式传递和检查对象之前向对象附加一个标志,或者是否有更简洁的解决方案。
标签: javascript reactjs typescript