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

自定义.d.ts文件无效?LeaderLine不是构造函数问题求助

解决LeaderLine加类型定义后报“LeaderLine is not a constructor”的问题

问题根源

leader-line本身不是标准ES模块,你用import { LeaderLine } from 'leader-line'这种解构导入时,导出结构和运行时的实际对象不匹配,导致找不到构造函数。

具体解决步骤

  • 先装对类型包
    确保已经安装了官方类型定义:

    npm install @types/leader-line --save-dev
    
  • 调整导入方式
    别用解构导入,换成这两种方式:

    1. 默认导入:
      import LeaderLine from 'leader-line';
      
    2. 直接声明全局变量(适合原本通过脚本标签引入的场景):
      declare var LeaderLine: typeof import('leader-line').LeaderLine;
      
  • 适配脚本引入场景
    如果你的原始项目是在angular.json的scripts里加了leader-line的文件路径,那组件里不用额外导入,直接用全局的LeaderLine就行,类型定义会自动生效:

    "scripts": [
      "node_modules/leader-line/leader-line.min.js"
    ]
    
  • 极端情况适配
    要是以上都不行,就手动适配导出结构:

    import * as LeaderLineModule from 'leader-line';
    const LeaderLine = (LeaderLineModule as any).default || LeaderLineModule.LeaderLine;
    

验证代码

创建实例时确保写法正确:

const line = new LeaderLine(
  document.getElementById('start'),
  document.getElementById('end')
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:02:37