Написать файл определения для существующей библиотеки JavaScript - PullRequest
0 голосов
/ 30 апреля 2019

Я полностью сбит с толку, когда пишу файл определения для машинописной версии существующей библиотеки JavaScript (es6).Я полностью застрял на том, как это сделать.Я посмотрел так много видео и дважды прочитал документацию по машинописи, но не смог начать с этого.Моя первая проблема: куда мне поместить файл .d.ts?При написании моего приложения обычно мне не нужно писать файл .d.ts, потому что все регистрируется машинописным шрифтом.Так зачем мне это?С другой стороны, когда я пытаюсь написать файл .d.ts для существующей библиотеки javascript (в моем случае я хотел начать с простого dator), нужно ли мне создавать папку @types с папкой dator и индексомФайл .d.ts, где я пишу наборы для этого?И при добавлении другой библиотеки без файла .d.ts я снова создаю библиотеку папок в разделе @typings с файлом index.d.ts?Или я просто пишу один большой файл для всех наборов, которые я добавлю?

Допустим, я создам файл .d.ts для dator (ссылка здесь ).Я начал с создания файла index.d.ts в моей папке src / @ types / dator.Затем я объявил модуль следующим образом:

declare module 'dator' {

}

В файле index.js Validator из validator.js экспортируется по умолчанию, поэтому я делаю то же самое:

...
    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;
...

прямо под классом export.Теперь validation-types.js экспортирует объект по умолчанию, и я понятия не имею, как мне нужно написать это.

Может кто-нибудь попытается помочь мне и, возможно, объяснить это немного подробнее?Где я должен положить файлы .d.ts?Я действительно пытаюсь понять это, но я думаю, это довольно сложно.

...