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

如何在Node.js中导入TypeScript Interface并解决类型引用报错问题

问题解决说明

报错原因

  • TypeScript 中的interface属于编译期类型定义,编译为可执行的JavaScript代码时会被完全擦除,不存在对应的运行时实体。
  • 你使用const Config = require("../interfaces/Types")是CommonJS规范的运行时导入语法,赋值得到的Config是模块导出的运行时对象(由于你仅导出了interface,运行时该对象实际为空),自然无法作为类型标注使用。
  • 同文件内定义interface不报错,是因为TypeScript在编译阶段可以直接识别同文件作用域下的类型定义,不需要跨文件导入。

修复方案

即使是Node.js CommonJS运行环境,也无需改动项目的模块配置,只需调整类型导入的写法即可:

方案1(推荐,TS 3.8+版本支持)

使用TypeScript专属的类型导入语法,该语句编译后会被完全删除,不会生成任何运行时代码,完全兼容CommonJS环境:

// config.ts
import type { Config } from "../interfaces/Types";

const config: Config = {
    current: 'base'
};

如果Types.ts中同时导出了运行时可用的值,再加一行普通的require语句导入运行时内容即可。

方案2(兼容低版本TS)

如果你的TypeScript版本低于3.8不支持import type,可以使用如下写法:

// config.ts
const TypesModule = require("../interfaces/Types");

const config: typeof TypesModule.Config = {
    current: 'base'
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:45:04