我已经创建了一个项目使用创建React应用程序typescript。我有一些d.ts文件,我已经定义了接口类型和枚举。当我运行启动脚本。它是无法加载的d.ts文件。
以下是我的tsconfig文件。
{
"compilerOptions": {
"target": "es6",
"lib": [
"dom",
"dom.iterable",
"es2017"
],
"allowJs": true,
"skipLibCheck": false,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"pretty": true,
"preserveConstEnums": true,
"typeRoots": [
"./node_modules/@types",
"src/*"
]
},
"include": [
"src/*"
]
}
typeRoot指向src/*,其中我有我的d.ts文件,但没有加载任何d.ts。我得到以下错误:
类型错误:找不到名称“IAlarm Details”。TS 2304
interface IAlarmProps {
alarm: IAlarmsDetails;
}
这是Alarms.d.ts之一中的IAarmsDetails声明
declare type IAlarmsList = IAlarmsDetails[];
请让我知道我在这里错过了什么。我不想使用弹出选项,写我自己的构建配置。
3条答案
按热度按时间brtdzjyr1#
在create-react-app(版本3.0.1)中使用
.d.ts
文件的唯一方法是将其命名为global.d.ts
并将其放在src
目录中:src/global.d.ts
我不知道为什么这个规则没有记录在任何地方,但这是唯一的方法,我能够得到它的工作。
8mmmxcuj2#
我遇到了同样的问题,我解决它的方法是在同一文件夹内将
.d.ts
文件重命名为index.d.ts
,然后它可以在index.d.ts
内没有任何导出或导入的情况下工作。hts6caw33#
至少在Create React App版本4.0.3中,此问题可以通过编辑应用的tsconfig.json文件来解决。
在“includes”选项下,添加
"src/types/**/*"
。将.d.ts
定义文件保存在src/types目录中。无论你是否在这些文件中包含
export
语句,应用都应该编译。但是,export语句会阻止你的代码liter找到类型定义,除非你也手动导入它们。通过这条github评论发现了解决方案。