我在src/@types/app.d.ts
(export type AuthKeyT = string
)中有自定义类型
我想在tsx
反应文件中使用它(使用import { AuthKeyT } from '@types/app'
),但出现错误:
无法导入类型声明文件。考虑导入“ app”而不是“ @ types / app”
因此,当我使用import { AuthKeyT } from 'app'
时,我会得到:
找不到模块“ app”。
那么..怎么了?我应该如何导入自定义类型?
我在React应用中使用打字稿3.7.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...
之类的内容来解决此问题。