欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 通过ts declare包装一个js库

通过ts declare包装一个js库

2025/10/12 5:40:40 来源:https://blog.csdn.net/douyh/article/details/142669421  浏览:    关键词:通过ts declare包装一个js库

myshape模块

0.npm init

  1. libs目录中新增3个js文件
    point.js
class Point{x = 0;y = 0;constructor(x,y) {this.x = x;this.y = y;}getDistance(other) {let xDis = Math.abs(this.x - other.x);let yDis = Math.abs(this.y - other.y);return Math.sqrt(xDis*xDis + yDis*yDis);}
}
module.exports = Point

circle.js

let Point = require('./point')class Circle{radius = 0;point = null;constructor(point, radius) {this.radius = radius;this.point = point;}isInCircle(point){let dis = this.point.getDistance(point)return dis <= this.radius;}
}
module.exports = Circle

index.js

let Point = require('./point')
let Circle = require('./circle')module.exports = {Point,Circle
}

package.json

{"name": "myshape","version": "1.0.0","description": "","main": "./libs/index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC","files": ["libs"]
}

index.d.ts

declare module 'myshape' {class Point{constructor(x:number,y:number);getDistance(other:Point):number;}class Circle{constructor(point: Point, radius: number);isInCircle(point: Point):boolean;}
}

执行 npm link

### 测试myshape模块
0. npm init

  1. tsc --init
  2. npm link myshape
  3. 新建demo.ts
import {Point} from 'myshape'
let p:Point = new Point(2,3);
let p2:Point = new Point(1,2)
console.log(p.getDistance(p2));

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词