【发布时间】:2021-11-19 01:53:36
【问题描述】:
我已经阅读了关于缩小 TypeScript 中 unknown 类型的 object 的多个帖子和问题。但我还没有找到这个具体的问题或解决方案。
我发现大多数解决方案都可以做这样的事情。
const result: unknown = {
movieName: "test",
};
if (
typeof result === "object" &&
result !== null &&
"movieName" in result &&
typeof result.movieName === "string" // <-- Error Here
) {}
错误状态
“对象”类型上不存在属性“movieName”
如何缩小范围以使其知道unknown 是一个包含movieName 属性的object?如何访问 result.movieName 以获取 unknown 类型?
编辑:perhaps it's not possible? 以及下面 cmets 中将其声明为 Record
【问题讨论】:
-
也许你可以使用
result: Record<string, unknown> -
上面的类型只是为了测试。未知结果实际上来自 API。
标签: typescript