使用TypeScript类型声明为JS工具函数库添加类型提示
在项目开发中,我们常常将工具函数或模块组织成独立文件夹(例如test文件夹)。为了方便复用并获得良好的类型提示,我们需要在对应的index.d.ts文件中声明这些JS文件的类型。本文将详细讲解如何在index.d.ts中为同级文件夹下的JS文件编写类型声明,从而在其他项目中使用时获得类型提示。
假设有一个名为test的文件夹,其中包含index.js文件,该文件导出了一些函数和变量。我们希望在main.ts文件中导入test/index.js时,能够获得类型提示,而不是只有简单的import fnc这样的导入。
为此,我们需要在test文件夹下创建index.d.ts文件。此文件将声明index.js中导出成员的类型。
示例:
index.js文件内容:
export function add(a, n = 1) { return a + n; }
对应的index.d.ts文件:
export function add(a: number, n?: number): number;
这里,我们声明了add函数的类型:它接收两个参数,a是必选的数字类型,n是可选的数字类型,返回值也是数字类型。
在main.ts文件中,我们可以这样使用:
import { add } from './test'; // (a: number, n?: number | undefined) => number type T = typeof add;
通过以上步骤,当在main.ts中使用add函数时,IDE将提供完整的类型提示,提升代码补全和错误检查能力,从而提高开发效率和代码质量。type T = typeof add 这行代码用于演示,通过获取add函数的类型信息,可以更清晰地看到其类型定义。