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

将JS模块导入TS应用时遇到“d.ts is not a module”错误求助

将JS模块导入TS应用时遇到“d.ts is not a module”错误求助

嘿,我来帮你梳理下问题出在哪,你这几个小细节没注意到:

  • 导入路径写错啦:你现在写的是import { populateSugg} from '../utils/sugg.ts';,但你的实际模块文件是sugg.js,应该改成import { populateSugg } from '../utils/sugg';(TS会自动识别同目录下的JS文件,不用加.ts后缀哦)。

  • 声明文件有语法错误:你的sugg.d.ts里export function populateSugg}这里多了个闭合大括号,这会直接导致语法解析失败,先把这个多余的大括号删掉。

  • 声明文件的模块写法过时了:你用的是旧风格的模块声明,现在得改成ES模块兼容的写法,给你两种靠谱的方案:

    方案一:针对具体文件做模块声明(适合声明文件和JS文件不在同目录的情况)

    declare module '../utils/sugg' {
      export function populateSugg(
        scope: string,
        value: string,
        property?: string
      ): string;
    }
    

    方案二:直接导出类型(如果声明文件和sugg.js在同一个目录,且你的tsconfig.json里开了allowJs: true,可以简化成这样)

    export function populateSugg(
      scope: string,
      value: string,
      property?: string
    ): string;
    

最后别忘了检查下你的tsconfig.json,确保allowJs被设为true,这样TypeScript才能正确处理JS模块的导入哦~

备注:内容来源于stack exchange,提问作者nickisme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:53:06