我在src/@types/app.d.ts
中有自定义类型(export type AuthKeyT = string
)
我想在tsx
react文件中使用它(使用import { AuthKeyT } from '@types/app'
),但我得到一个错误:
无法导入类型声明文件。考虑导入'app'而不是'@types/app'
所以,当我使用import { AuthKeyT } from 'app'
时,我得到:
找不到模块“app”。
那么...怎么了?如何导入自定义类型?
我在react应用程序中使用了typescript 3.7.2
。
3条答案
按热度按时间nxowjjhe1#
您会遇到此错误,因为
@types/...
是全局导入。例如,import { AuthKeyT } from '@types/app'
意味着您正在尝试从node_modules中的@types导入。您可以通过将
@types
更改为类似@customTypes
的内容或在导入时更改类型文件夹的路径类似@src/types...
来解决此问题。u0njafvf2#
正如错误所说,您无法在TypeScript中导入
.d.ts
文件。import ... from 'app'
隐含地表示import ... from 'app.ts'
,或者这个文件不存在,所以你会得到第二个错误。如果你想通过这个导入来使用你的类型,你必须把它们写在一个简单的
.ts
文件中,如下所示:使用此结构,您将能够使用以下方式导入此类型:
mrfwxfqh3#
你也可以像这样在
tsconfig.json
中添加path
到你的编译器Optons中:然后是
import { AuthKeyT } from 'types/app'