1. tsc --init

更多配置项请见这里

  1. https://www.tslang.cn/docs/handbook/compiler-options.html

添加自己的 typings 文件夹

添加以下配置项。就可以加载自己的 d.ts 文件了

  1. {
  2. "compilerOptions": {
  3. "typeRoots":[
  4. "typings"
  5. ]
  6. }
  7. }

下载已经写好的 d.ts 文件

xxx 就是你的库的名字。

  1. npm install @types/xxx -D

这个有点像 lodash,因为这只是安装一个小部件。

  1. npm install lodash/assign -S

@types 这个包存放了所有别人已经写好的 d.ts 文件。可以自己先到 npmjs 去搜索看看有没有。

假如没有库的 d.ts 文件

有的库会报错,而有的不会,那怎么解决这个问题呢?

配置好自己 typings 目录,在该目录下新建一个 xxx.d.ts ,这个 xxx 你可以随意写。

  1. declare module "koa" {
  2. interface Context {
  3. render(filename: string, ...args: any[]) : any;
  4. session: any;
  5. i18n: any;
  6. csrf: any;
  7. flash: any;
  8. }
  9. }

这里注意了 “koa” 就是你报错库的名称,记得别忘记双引号。

这里我就是给 koa 库添加一些属性,防止代码编辑器报错。

还有一点你需要注意的是,报错一定是因为该包主目录下没有一个 index.js,它可能放到 lib 目录下面了,所以会报错。新版本的 ts 只要你安装了库,并且它的下面有 index.js 可以加载到,ts 是不会报错的,只是会让你导入的库是 any 类型的。

如何发布 d.ts 文件

第一种方式就是在你的库下面的 package.json 里面配置。

这里最好写上相对路径

  1. "types": "./lib/main.d.ts"
  2. // or
  3. "typings": "./lib/main.d.ts"

第二种方式是给这个地址提交 PR

  1. https://github.com/DefinitelyTyped/DefinitelyTyped.git

假如把 @types 里面的东西 download 到自己的私有源里面

克隆下来跑一次就可以了

  1. https://github.com/Microsoft/types-publisher

我一万个建议你把 DefinitelyTyped 仓库下载下来阅读。