You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让TS-Node识别vite-env.d.ts中的类型定义?

解决TS-Node无法识别vite-env.d.ts类型的问题

核心原因

测试用的TypeScript配置未包含src/vite-env.d.ts,导致TS-Node编译时找不到其中定义的类型。以下是几个直接有效的解决办法:

方法1:更新测试用tsconfig的包含范围

修改test/tsconfig.json,让配置覆盖src目录的类型文件和业务代码,确保TS-Node能读取到全局类型定义:

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "NodeNext",
    "esModuleInterop": true
  },
  "include": [
    "../src/**/*.d.ts",
    "../src/ts/**/*.ts",
    "./**/*.spec.ts"
  ],
  "ts-node": {
    "esm": true,
    "files": true
  }
}

方法2:将类型声明为全局可用(可选)

如果希望MyCustomType在所有文件中直接使用、无需单独导入,修改src/vite-env.d.ts:

/// <reference types='vite/client' />

declare global {
  type MyCustomType = {
    start: string,
    end: string
  };
}

// 必须添加此行,确保全局声明生效
export {};

方法3:明确Mocha的TS配置路径

在test/.mocharc.json中指定测试用的tsconfig路径,避免TS-Node误加载其他配置:

{
  "loader": "ts-node/esm",
  "extensions": ["ts"],
  "spec": ["test/**/*.spec.ts"],
  "watch-files": ["src/vite-env.d.ts", "src/ts/*.ts", "test/**/*.spec.ts"],
  "experimental-json-modules": true,
  "ts-node": {
    "project": "./test/tsconfig.json"
  }
}

验证步骤

先执行ts-node --project test/tsconfig.json src/ts/myModule.ts检查是否还存在类型错误,确认配置生效后再运行npm test。


内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:57:40