怎么在ts文件中导入全局js的typescript声明文件

问题

我写了一个js文件: fabric.ext.js, 并且在 html直接包含它:

<head>
  <script src="fabric.min.js"></script>
  <script src="fabric.ext.js"></script>
</head>

我又为它写了一个ts声明文件 (rightHand.d.ts):

// eslint-disable-next-line @typescript-eslint/no-namespace
declare namespace rightHand {
  interface Point {
    x: number;
    y: number;
  }
  function loadObjects(ar: any[]): any[]; // fabric.Object[]
  function makeLine(points: number[], options: object): any; // fabric.Line2
  function makePolyline(points: Point[], options: object): any; // fabric.Polyline2
  function makePolygon(points: Point[], options: object): any; // fabric.Polygon2
  function makeText(text: string, options: object): any; // fabric.Text2
}

在某个.vue 文件, 在脚本部分

我只能把rightHand.d.ts的内容复制进去, 这样才可以成功编译.但是这样意味着太多重复代码。

搞了一天,尝试修改tsconfig.json, package.json, 没有成功。希望有大牛指点迷津。

解决方案

把rightHand.d.ts文件放在src或者src/types目录下就可以,也可以命名为global.d.ts文件。放在src/typings目录下不可用。

注意声明文件中不要使用export,否则该文件就是一个模块(文件模块),而不是一个脚本(全局模块)了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值