Как проверить правильность интерфейса javascript на машинописных текстах? - PullRequest
0 голосов
/ 05 февраля 2020

Я действительно не нашел ответа и потратил много времени на поиски. Я пытаюсь автоматизировать тестирование по типам, включенным в мой npm модуль scramjet. Я хотел бы проверить, действительно ли интерфейс, представленный в ./.d.ts/ и на который указывает package.json:typings, действительно соответствует моему коду javascript.

При условии, что пакет. json:

{
"name": "scramjet"
"main": "lib/index.js"
"types": ".d.ts/index.d.ts"
}

И .d.ts / index.d.ts:

export {DataStream} from "./data-stream"; // there is a data-stream.d.ts
export {StringStream} from "./data-stream"; // there is a data-stream.d.ts

И в lib /index.js:

module.exports = {DataStream};

Как я могу проверить из командной строки, если файл js правильный? Я даже не могу сделать Visual Studio, чтобы выделить очевидные ошибки, такие как отсутствие экспорта и тому подобное ...

Я знаю, что могу написать отдельный файл с некоторой проверкой реализации и проверить этот синтаксис во время выполнения, но могу ли я в любом случае использовать eslint или tslint и сообщите этим инструментам, что интерфейс класса DataStream js определен в .d.ts/data-stream.d.ts с каким-либо @ jsdo c?

Я пробовал :

/**
 * @implements {import('./.d.ts/int.d.ts').ISomeInterface}
 */ 
class Something extends SomethingElse {
    // missing methods
}

Если VSCode может угадать интерфейс на основе реализации, возможно, это можно каким-то образом извлечь, и если так - возможно, "есть модуль для этой" проверки, который меня интересует?

...