TypeScript声明文件(.d.ts)的使用

前言

当我们在TS文件中需要引入外部库时,编译时是无法判断传入参数的类型的,所以我们需要在引入前加入一个声明文件来帮助ts判断类型。
当然现在大部分库都自带有自己的声明文件,一般在@types目录下。

使用场景

  1. 在ts文件中对引用的外部库做类型判断;
  2. 制作npm包时,书写自己的声明文件,需要在package.json的typing/types字段注册声明文件的路径;
  3. 不使用ts时,也可以添加声明文件与(自己的)的模块存放在同一目录下,简单做一下数据结构体,对IDE参数声明也有用哦;

引用声明文件的几种方法

  1. 与调用的ts文件放在同一目录下;
  2. 在声明文件tsconfig.json的include/files字段下添加声明文件的路径;

实例

  • 以外部库fs为例(假设fs没有自己的声明文件)

  • fs.d.ts

declare module 'fs' {
    function readFileSync(path: string | number, options?: { encoding?: string; flag?: string; } | null): string;
}
  • MyTest.ts
import * as fs from 'fs'

const body = fs.readFileSync('../@types/fs.d.ts', {encoding: 'utf8'});
console.log(body);

总结

  1. 声明文件一般只能声明外部引入的npm包;
  2. 声明文件一定要用declare module 'fs'显式的声明自己的外部库名称;
posted @ 2020-04-29 09:34  落叶&不随风  阅读(16614)  评论(0编辑  收藏  举报