为现有的JavaScript库编写定义文件

时间:2019-04-30 18:44:34

标签: typescript .d.ts typescript-definitions

在为现有javascript库(es6)的打字稿编写定义文件时,我完全感到困惑。我完全停留在如何执行此操作上。我看了这么多视频,并且两次阅读了打字稿文档,但无法对此进行入门。 我的第一个问题是,我的.d.ts文件放在哪里?在编写我的应用程序时,通常不需要编写.d.ts文件,因为所有内容均由Typescript注册。那我为什么需要这个?另一方面,当我尝试为现有的javascript库编写.d.ts文件时(在我的情况下,我想从dator开始简单),我是否需要使用文件夹dator和索引创建文件夹@types .d.ts文件,我在其中输入键入内容吗?当添加另一个没有.d.ts文件的库时,我再次在@typings下创建一个带有index.d.ts文件的文件夹库吗?还是只为要添加的所有内容写一个大文件?

假设我将为dator创建一个.d.ts文件(链接libbson)。我首先在src / @ types / dator文件夹中创建一个index.d.ts文件。然后,我首先声明了一个像这样的模块:

declare module 'dator' {

}

在index.js文件中,来自validator.js的Validator作为默认值导出,所以我做同样的事情:

...
    export default Validator {}
...

validator.js使用的util.js会导出const函数,所以我这样写:

...
    export const isInArray: (array: [], element: object) => boolean;
    export const findParentBySelector: (elm: object, selector: string) => object;
    export const hasClass: (elm: object, cls: string) => boolean;
    export const addClass: (elm: object, cls: string) => void;
    export const removeClass: (elm: object, cls: string) => void;
...

在类导出下。现在validation-types.js会导出一个默认对象,我不知道该怎么写。

能否请某人尝试帮助我,也许再深入解释一下?我应该将.d.ts文件放在哪里?我确实试图理解这一点,但是我认为它非常安静。

0 个答案:

没有答案