TS-13 d.ts

  • d.ts文件如果加了import/export,就不能全局使用了,除非把声明放在 declare global 里面
declare global {
  interface X {}
}
  • 扩展库的模块,以axios为例:
import {AxiosRequestConfig} from 'axios';

declare module 'axios' {
  export interface AxiosRequestConfig {
    _autoLoading?: boolean;
  }
}
  • 如果想给window加全局变量:
// 全局变量
declare var Cesium: any
  • 想要在d.ts中声明函数类型:
function sum(a:number): number // declare 可加可不加
  • ts文件中引入js变量会报错,这时候就需要自己声明一个与js文件同名.d.ts文件,然后根据js导出的内容,用ts一一声明
    image.png
  • tsconfig.json
"lib": [
      "dom", // lib.dom.ts,浏览器的 api
      "dom.iterable",
      "esnext" // js 的 api
    ],
  • 自己写ts库的话,
  1. 没用工程化环境的情况:.d.ts是可以自动生成的,然后要在tsconfig.jsontypes选项中表明.d.ts文件的路径
tsc -d main.js  // 会生成 main.d.ts
  1. 工程化环境:tsconfig.json里添加declaration: true
  • 控制加载某个包的types定义


    image.png
  • 总结


    image.png
  • 发布ts包
tsc init
tsc
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容