Как ссылаться на определения типов во встроенных скриптах в vscode?
В index.html
Я использую проверку типа TS Это прекрасно работает для встроенных объявлений JSDoc, т.е. vscode правильно показывает неверное назначение типа:
<script>
// @ts-check
/**
* @typedef {Object} SpecialType - a new type
* @property {number} prop1 - a number
*/
/** @type {SpecialType} */
const x = { prop1: 'invalid number' }; // <-- vscode shows the type error
</script>
Есть ли способ извлечь это определение типа во внешний файл и импортировать его в index.html
или сделать vscode иначе осведомленным о типе глобально?
Я попробовал следующее, но во всех случаях vscode отсутствовал тип, когда он использовался в index.html
:
- Создать внешний
types.js
файл, который просто содержит комментарий typedef JSDoc и импортирует его через<script src="..."></script>
- Создать внешний
types.html
файл, который просто имеет блок скрипта с комментарием typedef JSDoc и импортирует его через<link rel="import" href="...">
- Создать
global.d.ts
файл с соответствующим типом и импортировать его, используя/// <reference path="..." />
1 ответ
Попробуйте создать папку для набора текста, скажем, typings/global
, в корне вашего проекта. Затем создайте index.d.ts
файл, содержащий ваши объявления TS, и поместите его внутрь global
папка.
В вашем tsconfig.json
:
"typeRoots": [
{
"./node_modules/@types"
"./typings"
}
],
"types": [
"global",
...
]
ПРИМЕЧАНИЕ Документация
Если указан typeRoots, будут включены только пакеты в typeRoots