TypeScript:无法检索另一种类型的属性类型

Posted

技术标签:

【中文标题】TypeScript:无法检索另一种类型的属性类型【英文标题】:TypeScript: Can not retrieve the type of property of another type 【发布时间】:2021-07-02 15:05:51 【问题描述】:

我正在使用 create-react-app 及其打字稿模板,但是当尝试检索 'GenericAsyncThunk' 中的属性 'pending' 的类型时,就像在 redux-toolkit docs 中一样:

type PendingAction = ReturnType<GenericAsyncThunk["pending"]>;

我收到一个错误:Parsing error: Unexpected token, expected "]"

编辑:看起来错误只出现在我的机器上并且在CodeSandbox 中工作。使用命令npm start 运行项目时会出现错误。这是完整的输出:

关于如何解决这个问题的任何建议?

【问题讨论】:

可以用单引号试试吗? 很遗憾,没有帮助。 请添加孔代码。 用更多代码更新了问题。 【参考方案1】:

可能实际的解析错误在文件中稍早一些,并且它报告的行不是有错误的行,而是它必须放弃的行,因为它没有任何进一步的意义文件。

尝试删除此结构之前的元素,或将此结构移到页面上方,看看您是否可以证明该理论。

【讨论】:

我使用我现在添加到问题中的代码作为设置可重用异步请求缩减程序的助手。我尝试移除reducer,但应用运行时仍会抛出错误。 必须添加另一条评论,因为我无法编辑前一条。删除使用可重用reducer的代码可以消除错误,但是服务器也必须重新启动,简单的刷新并不能消除错误。 但是该代码没有显示错误,对吧?当您说“我遇到错误”时,您运行什么命令来获得错误,哪个工具元素会打印出该错误?我们需要更多的继续。此外,您距离 CodeSandbox 中的完整示例只有 2 种类型。尝试从 Typescript 游乐场单击 Export > Open in CodeSandbox 并完成工作?只要 "./@types/types";缺少它不会完全工作。 CodeSandbox 允许创建和导入多个文件以及任何 npm 模块。如果它在那里工作,那是你的机器或配置有问题而不是代码。 感谢您的建议。将尽可能地尝试。 刚刚尝试在 CodeSandbox 中运行代码并没有出现任何错误,但是从平台下载代码并在本地运行后,我遇到了与以前相同的错误。我相应地更新了问题。

以上是关于TypeScript:无法检索另一种类型的属性类型的主要内容,如果未能解决你的问题,请参考以下文章

如何定义 Typescript 部分类型以仅接受属性

Azure 表:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息

错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

在 Typescript/React 中使用一种或另一种接口类型

如何将一种泛型类型的结构复制到 TypeScript 中的另一种泛型?