TypeScript中类型声明文件

类型声明文件 以d.ts结尾

在axiosDemo中的mode_moudules中就有index.d.ts文件

TS中的两种文件类型

1. .ts文件

  • 即包含类型文件又可执行代码
  • 可以编译为.js文件,再执行代码
  • 是编写程序代码的地方

2. .d.ts文件 (DefinitelyTyped)

  • 只包含类型信息的类型声明文件
  • 不会生成.js文件,仅用于提供类型信息
  • 为js提供类型信息

总结: .ts是implementation(代码实现文件); .d.ts是declaration(类型声明文件)

使用类型声明文件

  1. 先使用现有的类型声明文件
  2. 再创建自己的类型声明文件

就是先学会别人的使用方式,再自己创建使用

现有的类型声明文件

在axiosDemo中的mode_moudules中就有index.d.ts文件

如何使用

在项目的根目录中会有一个package.json文件
里面有一些配置项,其中types|typeing就是用来配置类型声明文件的

由DefinitelyTyped提供
  • DefinitelyTyped是一个github仓库,用来提供高质量的ts类型声明文件
  • 可以npm | yarn 下载ts类型声明包 这些包的名称格式为:@types/*
  • 比如@type/react 等
  • 当安装了类型声明包以后,ts会自动加载该类声明包,以提供该库的类型声明

自己的类型声明文件

  1. 创建index.d.ts类型声明文件
  2. 创建需要共享的类型,使用export导出
  3. 在需要使用共享类型的.ts文件中,import导入即可(.d.ts导入后缀必须省略)

注意:.d.ts文件名称不要和.ts的重名

为已有js文件提供类型声明
  1. js项目迁移到ts项目,让已有的js文件有类型声明
  2. 成为库作者,创建库给其他人使用

注:类型声明文件的编写与模块化方式相关,不同的模块化方式有不同的写法

  • TS项目中也可以使用.js文件
  • 在导入.js文件时,TS会自动加载与.js同名的.d.ts文件,以提供类型声明
declare关键字
  • 用于类型声明,为其他地方(.js文件)已存在的变量声明类型,恶如不是创建一个新的变量
  1. 对于type、interface等这些明确就是TS类型的(只能在TS中使用的),可以省略declare
  2. 对于let、function等具有双重含义(在JS、TS中都能用),应该使用declare关键字,明确指定这里是用于类型声明

你可能感兴趣的:(typescript,typescript,react.js,javascript)