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

如何在.d.ts文件中引用node_modules里的Interface或Type?

在.d.ts文件中引用第三方类型的正确方法

方法一:使用import type(模块级引用)

这是最推荐的局部引用方式,适用于仅在当前.d.ts文件中需要第三方类型的场景:

  1. 先确认类型定义已安装:
    • 若第三方包自带类型声明(package.json里有types字段),直接安装包即可:npm install third-party-package
    • 若包无自带类型,需安装对应的@types包:npm install @types/third-party-package --save-dev
  2. 在.d.ts文件中直接导入类型:
    // 导入单个类型
    import type { SomeType } from 'third-party-package';
    
    // 声明使用该类型的自定义接口
    export interface MyProjectInterface {
      targetProp: SomeType;
    }
    
  3. 常见失败排查:
    • 若提示找不到模块,检查tsconfig.json的moduleResolution配置,推荐用NodeNext/Node16或Node
    • 若文件无任何import/export语句,TS会将其识别为全局脚本,此时用import type会报错,只需添加export {}将文件转为模块即可

方法二:使用三斜线指令(全局/文件级引用)

当需要让第三方类型在当前.d.ts文件全局可用,或在整个项目的全局脚本中自动生效时使用:

  1. 同样先确保对应的类型包已安装
  2. 在.d.ts文件最顶部添加指令:
    /// <reference types="third-party-package" />
    
    // 无需导入,直接使用第三方类型
    interface MyGlobalInterface {
      targetProp: ThirdPartyType;
    }
    
  3. 注意事项:
    • 若当前文件是模块(含import/export),该指令仅作用于当前文件
    • 若想让类型在全项目全局脚本中自动可用,可在tsconfig.json的compilerOptions.types数组中添加包名:
      {
        "compilerOptions": {
          "types": ["third-party-package"]
        }
      }
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:10:33