如何正确输入打字稿中的自定义类型

时间:2020-04-19 16:44:00

标签: reactjs typescript types

我在src/@types/app.d.tsexport type AuthKeyT = string)中有自定义类型

我想在tsx反应文件中使用它(使用import { AuthKeyT } from '@types/app'),但出现错误:

无法导入类型声明文件。考虑导入“ app”而不是“ @ types / app”

因此,当我使用import { AuthKeyT } from 'app'时,我会得到:

找不到模块“ app”。

那么..怎么了?我应该如何导入自定义类型?

我在React应用中使用打字稿3.7.2

2 个答案:

答案 0 :(得分:2)

如错误所述,您不能在TypeScript中导入.d.ts文件。

import ... from 'app'意味着隐含import ... from 'app.ts'或此文件不存在,所以您遇到第二个错误。

如果要通过此导入使用类型,则必须将它们写在一个简单的.ts文件中,如下所示:

src/@types/app.ts:

export type AuthKeyT = string

使用此结构,您将可以使用以下方式导入此类型:

import { AuthKeyT } from 'app'

答案 1 :(得分:0)

您遇到此错误是因为 @types/... 是全局导入。例如 import { AuthKeyT } from '@types/app' 表示您正在尝试从 node_modules 中的 @types 导入。

您可以通过将 @types 更改为 @customTypes 之类的内容或在导入时将类型文件夹的路径更改为 @src/types... 之类的内容来解决此问题。