TypeScript扩展知识

模块系统与命名空间

.d.ts声明文件和declare关键字

.d.ts声明文件的作用是描述js模块内所有导出接口的类型信息,当在ts模块中引入js模块 需要用到这个声明文件。
.d.ts文件要求与js文件同名并且在同一目录下
在tsconfig.json中 配置declaration:true可自动生成.d.ts文件

@types和DefinitelyTyped仓库

为了在ts中很好的使用第三方库,需要额外安装第三方库的类型声明模块 也就是以@types/开头的包(例如@types/jquery)

lib.d.ts和global.d.ts

安装ts时会顺带安装一个lib.d.ts声明文件,这个文件包含js内置对象以及dom中的各种常见类型,在写ts代码的时候系统会自动推断这些类型 例如:

let body= document.querySelector('body')  //  let body: HTMLBodyElement | null

let date = new Date() //let date: Date

global.d.ts 需要自己创建 。这是一个全局类型声明文件,在这个文件声明的类型可以全局使用

tsconfig.json

{
  "compilerOptions": {
    //编译选项
    /* 配置说明: https://aka.ms/tsconfig  */

    /* Projects */
    //  和项目相关的
    // "incremental": true,                              /* 增量编译:缓存编译过程 */
    // "tsBuildInfoFile": "./.tsbuildinfo",              /* 增量编译目录 */

    /* JavaScript Support */
    // "allowJs": true,                                  /* 对js文件进行编译 */
    // "checkJs": true,                                  /* 对js文件进行类型检测 */

    /* Language and Environment */
    "target": "es5" /* 指定编译成哪个版本的js */,
    "lib": [
      "ES2015",
      "DOM"
    ] /* Control what method is used to detect module-format JS files. */,

    /* Modules */
    "module": "commonjs" /* 指定要使用的模块化规范 */,
    "rootDir": "src" /* 指定根目录*/,

    /* Emit */
    // "declaration": true,                              /* 自动生成 .d.ts 文件*/
    // "sourceMap": true,                                /* 自动生成 sourceMap文件 */
    "outDir": "dist" /* 指定输出目录 */,
    "esModuleInterop": true /* 兼容js模块无default的导入 */,
    "moduleResolution": "Node" /* 以node的模式查找模块*/,
    "forceConsistentCasingInFileNames": true /* 引入时强制区分大小写 */,

    /* Type Checking */
    "strict": true /* 严格模式总开关 */,

    /* Completeness */
    "skipLibCheck": true /* 跳过所有 .d.ts 文件的类型检查 */
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值