typescript 创建react应用程序类型脚本未加载d.ts文件

chhkpiq4  于 2023-03-13  发布在  TypeScript
关注(0)|答案(3)|浏览(248)

我已经创建了一个项目使用创建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[];

请让我知道我在这里错过了什么。我不想使用弹出选项,写我自己的构建配置。

brtdzjyr

brtdzjyr1#

在create-react-app(版本3.0.1)中使用.d.ts文件的唯一方法是将其命名为global.d.ts并将其放在src目录中:
src/global.d.ts
我不知道为什么这个规则没有记录在任何地方,但这是唯一的方法,我能够得到它的工作。

8mmmxcuj

8mmmxcuj2#

我遇到了同样的问题,我解决它的方法是在同一文件夹内将.d.ts文件重命名为index.d.ts,然后它可以在index.d.ts内没有任何导出或导入的情况下工作。

hts6caw3

hts6caw33#

至少在Create React App版本4.0.3中,此问题可以通过编辑应用的tsconfig.json文件来解决。
在“includes”选项下,添加"src/types/**/*"。将.d.ts定义文件保存在src/types目录中。
无论你是否在这些文件中包含export语句,应用都应该编译。但是,export语句会阻止你的代码liter找到类型定义,除非你也手动导入它们。
通过这条github评论发现了解决方案。

相关问题