作者回复: 赞,学点JS 总是不会错的:)
作者回复: 先确定这个库的类型,全局库、模块库、还是UMD库,然后参照课程中介绍的方法,把它的API声明逐步添加进来(暂时用不到的API也可以不写)。
作者回复: 分两种情况: 1)如果开发的是类库,声明文件应该放在 package.json 指定的 "types" 路径下,位置随意;或者在包的根目录下同时放置 index.js 和 index.d.ts,就不需要使用"types"指定了;也可单独发布声明文件包 @types/xxx; 2)如果是普通的项目工程,除非js和ts混写,且ts引用了js模块,一般不需要写声明文件,这种情况下,需要把声明文件和源文件放在一起,如 lib.js、lib.d.ts
作者回复: 声明文件的位置在:node_module/@types/xxx 对应的库的位置就在:node_module/xxx
作者回复: 这种导出语法可以兼容ES6模块、CommonJS模块的导入
作者回复: jquery的声明文件需要手动安装 @types/jquery,moment的声明文件在自己的安装包里
作者回复: // MyClass.d.ts interface IMyMethod { (): void; props: number; } declare class MyClass { constructor() myMethod: IMyMethod } export = MyClass
作者回复: 全局库对外保留全局变量,模块库有export 语句,UMD库有典型的UMD封装
作者回复: 1)这个js的路径就是相对于index.html的路径; 2)声明文件在整个工程中都可以被检测到,它只用于类型检查,没有被加载的概念,也不会被构建输出
作者回复: 把index.ts 直接放在src下,git上的代码是很多节课放在一起的,不能一起运行