Использование интерфейса, определенного в JSDo c в Typescript - PullRequest
2 голосов
/ 02 февраля 2020

Я пытаюсь настроить TypeScript на JS кодовой базе с allowJs и checkJs

У меня есть JSDo c, который использует интерфейс в качестве типа параметра :

 * @param {IPlugin[]|IPlugin} plugins plugin instance(s).

В том же файле , у меня есть интерфейс, определенный через JSDo c:

/**
 * Plugin extension hooks.
 * @interface IPlugin
 * @since 2.1.0
 */

Это похоже на действительный JSDo c мне . Однако на TypeScript происходит сбой:

src / core / core.plugins. js: 243: 13 - ошибка TS2304: не удается найти имя 'IPlugin'.

243 * @param {IPlugin [] | IPlugin} Плагины экземпляров плагинов.

Есть идеи, как заставить это работать?

1 Ответ

1 голос
/ 02 февраля 2020

@interface не поддерживается Typescript: https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported -jsdo c

Рекомендуется использовать d.ts файлы вместо: https://github.com/microsoft/TypeScript/issues/33207#issuecomment - 527680208

Можно также взломать его, используя @typedef: https://github.com/AlCalzone/ioBroker.js-controller/blob/9fbbb890290b07af5d9dfb7ae90bf92f2d0be178/lib/tools.js#L1329

...