У меня есть пакет npm, который поставляется с наборами, структура файла похожа на следующую:
./typings/index.d.ts
* * 1004
export { ISomeInterface } from './something';
./typings/something.d.ts
/*
This interface is used by the package internally,
so I can't simply remove the export.
*/
export interface ISomeOtherInterface {
someField: number;
}
export interface ISomeInterface {
someObject: ISomeOtherInterface;
}
./package.json
:
"typings": "./typings/index.d.ts"
Проблема в том, что когда я набираю что-то вроде
const a: ISome...
VS IntelliSense кода показывает мне два предложения:
| Auto import ISomeInterface from 'my-package'
| Auto import ISomeOtherInterface from 'my-package/typings/something'
Как правильно запретить VS Code автоматически предлагать второй импорт?
typescript@3.2.2, VSCode@1.30.2
UPD:
library tsconfig (тот, который использовался для генерации наборов для библиотеки):
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"lib": ["dom", "es2016", "esnext"],
"jsx": "react",
"importHelpers": true,
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictBindCallApply": true,
"strictPropertyInitialization": true,
"noImplicitThis": true,
"alwaysStrict": true,
"noUnusedLocals": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"declaration": true,
"emitDeclarationOnly": true,
"rootDir": "src",
"outDir": "typings"
},
"include": [
"src/lib/**/*.ts",
"src/lib/**/*.tsx"
],
"exclude": [
"node_modules",
"dist",
"typings",
"src/**/*.spec.ts",
"src/**/*.spec.tsx"
]
}
project tsconfig (тот, который используется в проекте, где используется библиотека):
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"lib": ["dom", "es2016", "esnext"],
"jsx": "react",
"importHelpers": true,
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictBindCallApply": true,
"alwaysStrict": true,
"noUnusedLocals": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"baseUrl": "./",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"paths": {
"*": ["node_modules/@types/*", "*"]
}
}
}