Файл определения машинописного текста для хоста сценариев внутри настольного приложения без веб-фреймворка

Я пытаюсь создать файл определения машинописного текста для javascript для использования в настольном приложении. Меня интересует особенность intellisense в машинописи.

Среда, в которой выполняется файл javascript, находится внутри другого настольного приложения, использующего хост скриптов Windows. У меня есть доступ к документации поставщика настольных приложений (включая объекты и функции и их отношение), но не к исходному коду. Я использую Visual Studio 2017 для кодирования файлов javascript(Jscript).

Настольное приложение представляет свой API-интерфейс как члены Class Class для сценария, включая документ- член (например, веб-браузер, но с другими методами и свойствами).

Пример отношений объекта:

Application            (class cvAppOld)
-> Document            (class cvDoc)        (accessed by 'document')
   -> Table            (class cvTable)      (accessed by 'document.getTable()')
   -> Paragraph        (class cvPara)       (accessed by 'document.getPara()')
-> ApplicationSettings (class cvAppSetting) (accessed by 'settings')

Согласно документации разработчика:

Объект приложения является основным объектом.Все его свойства и методы доступны локально в среде сценариев.

Пример файла скрипта 'somefile.js':

function sortTable("sometablename") {
   var table = document.getTable("sometablename");
   table.autosort = 1;
   table.update;
   document.save;
}

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

Все примеры, которые я могу найти в Интернете, описывают, как это сделать при использовании NPM или использовании 'import' в файле проекта javascript. У меня нет ничего из вышеперечисленного. Файл javascript представляет собой только один файл без включений, в котором приложение для настольного компьютера выполняет функцию.

Я пытаюсь использовать это в качестве отправной точки: https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-d-ts.html, но, похоже, ничего не добьется.

В некоторых местах примеры используют экспорт, а в других местах объявляют и на разных уровнях. Я не могу понять связь. Я просто тупой?:)

Пока у меня есть это в index.d.ts:

declare namespace Something {
   class CvDoc {
      getPara(Index: number): CvPara;
      getTable(Index: number): CvTable;
   }
   class cvPara {
      someProperty: any;
   }
   class cvTable {
      someProperty: any;
   }
   class cvAppSettings {
      someProperty: any;
   }
}

0 ответов

Другие вопросы по тегам