Проблема:
Я использую пакет с ограниченной областью видимости (например, @ews/ntlm-client
), который не имеет встроенных определений типов. Я создал определения настраиваемого типа локально в основном tsconfig.json
, а затем использовал расширенный tsconfig.json
. Но VSCode жалуется, что расширенный tsconfig.json
не может найти определения для пакета с ограниченной областью видимости.
Что я пробовал:
Я создал определение типа и поместил его в <baseurl>\typedefs\@types\@ews\ntlm-client\index.d.ts
:
declare module '@ewsjs/ntlm-client' {
function createType1Message(workstation?: string, domain?: string): string;
function decodeType2Message(wwwAuthenticate?: string | null): any;
function createType3Message(type2msg: any, username?: string, password?: string, workstation?: string, domain?: string): string;
}
Я добавил папку определений типов в свой <baseurl>\tsconfig.json
. Обратите внимание, я не использую транспилятор tsc
, поскольку кодирую JS, а не TS:
{
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"lib": ["ES2019"],
"module": "CommonJS",
"target": "ES2019",
"noEmit": true,
"typeRoots": ["./node_modules/@types", "./typedefs/@types"]
}
}
, а затем расширил tsconfig, используя <baseurl>\a\b\tsconfig.json
:
{
"extends": "../../tsconfig.json"
}
Но я получаю следующую ошибку кода Visual Studio в моем <baseurl>\a\b\tsconfig.json
:
Why is this happening? I also have type definitions for other modules in my custom @types folder, but they don't seem to throw the same error.
введите описание изображения здесь
Я также замечаю, что мой основной <baseurl>\tsconfig.json
, похоже, не имеет этой ошибки.