TS怎么调用JS封装的各种库?

TS怎么调用JS封装的各种库?

做一个ts调用js库的总结,避免以后有谁再像我一样的迷茫摸索,ts调用js代码的方法有两个:

1.推荐使用的方法:网上有很多JS的公用库可以把这些库拿到项目中,并且把库小改一下,改成全局变量如:window.xxx = xxx,然后创建一个对应的xxx.d.ts声明文件,使用declare class xxx{},并且在这里xxx里面定义对应的方法或变量声明即可如(这只是我举的例子,实际变量与方法和跟实际的xxx来声明):

declare class xxx{


//初始化
   constructor(value:number);

   toNumber():number;

   toString(radix:number):string;

   isZero():boolean;

   value:number;

}

这样就可以在其它脚本里面这样用了:let aa = new xxx(156);aa.toNumber();

楼上网友提供的这个网址虽然不能直接用,但是可以拿来参与一下:https://github.com/DefinitelyTyped/DefinitelyTyped24还有cocos creator的creator.d.ts文件里面的声明方式也可以学习参考。

2.如果不想用.d.ts声明也可以直接按楼上的方法这样用:let MD5 = require(’…/lib/md5’);

然后在md5.js的末尾加上:module.exports = {hex_md5 : hex_md5,};

你的库根据需要导出你需要的函数就可以了。

又比如int64.js库,在末尾加上:module.exports=Int64;导出Int64这个模块。使用的地方也是一样的:let Int64 = require(’./Int64’);虽然vs code编译器把let Int64 = require(’./Int64’);这段代码给标红了,而且没有代码提示,但也是可以正常使用

再补一个方法3:
js:module.exports = Paho;//这一行写在要用的JS脚本里面,Paho是要导出的类或方法或其它什么对象
ts:import Paho = require(’./libs/netbase.js’);//这一行写在要调用JS的TS脚本里面,(./libs/netbase.js)是Paho的脚本路径
这个方法更好,既不会标红,也可以正确使用

参考
https://forum.cocos.org/t/ts-js/62224

你可能感兴趣的:(TypeScript,javascript,前端,开发语言)