typescript 声明文件 继承扩展其他模块,扩展String等原生对象,函数不确定参数个数

typescript声明文件 可以用于js库兼容ts引入、定义类型使编辑器提示更友好。

本文用于记录ts声明文件中一些技巧,不介绍声明文件的基本用法,基本用法可以参考ts官网。

1. 继承扩展其他模块

比如你的一个模块扩展了 vue,在vue对象上新增了一个方法,那么在你的声明文件中这样定义可以获得编辑器智能提示:

declare module "vue/types/vue" {
     
  interface Vue {
     
    fn():void;
  }
}

找到你希望扩展的对象所在的声明文件,然后在对象上加上你的方法或者属性就行,不会覆盖原有的属性。
typescript 声明文件 继承扩展其他模块,扩展String等原生对象,函数不确定参数个数_第1张图片

2. 扩展String等原生对象

如果你希望扩展String,Array等原生对象呢?你需要先新建一个文件,比如叫 extend.d.ts,写入下内容

interface String {
     
    testFn():void;
}

然后在你的声明文件中引入这个文件就可以啦:

import './extend';

typescript 声明文件 继承扩展其他模块,扩展String等原生对象,函数不确定参数个数_第2张图片

这里只演示了String,其他原始对象的扩展也是同理

3. 函数不确定参数个数

当你的一个函数有不缺定个参数的时候,类似于数组的push方法,解决方法就是使用 扩展运算符

declare function fn(...items: Array<string>): string;

上面定义的函数fn支持任意个数的字符串参数

你可能感兴趣的:(typescript,声明文件,typescript)