Typescript: baseUrl не работает при импорте из вложенной папки?

#typescript

Вопрос:

У меня есть файл, расположенный в src/components/SvgIcon/SvgIcon.stories.tsx . Внутри него я пытаюсь импортировать вот так:

src/components/SvgIcon/SvgIcon.stories.tsx

 import { SVG_ICON_SIZES, SVG_ICON_COLORS } from 'constants/properties';  

Однако он продолжает жаловаться на эту ошибку: Cannot find module 'constants/properties' or its corresponding type declarations.

В моем файле properties.ts нет ничего особенного:

src/constants/properties.ts

 export enum SVG_ICON_SIZES {  SMALL = 'small',  MEDIUM = 'medium',  LARGE = 'large',  XL = 'xl', }  export enum SVG_ICON_COLORS {  PRIMARY = 'primary',  SECONDARY = 'secondary',  DISABLED = 'disabled',  NEGATIVE = 'negative',  WARNING = 'warning',  POSITIVE = 'positive',  INTERACTIVE = 'interactive',  LIGHT = 'light', }   

Вот как я tsconfig.json выгляжу:

 {  "compilerOptions": {  "target": "es5",  "lib": ["dom", "dom.iterable", "esnext"],  "baseUrl": "src",  "skipLibCheck": true,  "esModuleInterop": true,  "allowSyntheticDefaultImports": true,  "declaration": true,  "declarationDir": "dist",  "emitDeclarationOnly": true,  "strict": true,  "strictNullChecks": true,  "forceConsistentCasingInFileNames": true,  "noFallthroughCasesInSwitch": true,  "module": "esnext",  "moduleResolution": "node",  "resolveJsonModule": true,  "isolatedModules": true,  "jsx": "react",  "types": ["jest"],  "typeRoots": ["src/types", "node_modules/@types"]  },  "include": ["src"],  "exclude": ["node_modules", "src/**/*.stories.tsx"] }   

В моем менее вложенном файле все работает так, как ожидалось:

src/components/Menu.tsx

введите описание изображения здесь

Почему он не работает во вложенной папке?

Ответ №1:

Понял это. Это было потому, что у меня было это в моем исключении в tsconfig.json:

 "exclude": ["node_modules", "src/**/*.stories.tsx"]  

Обновил его до

 "exclude": ["node_modules"]  

и теперь это работает

Ответ №2:

Не зная своей структуры файлов/каталогов, вы пробовали?

 import { SVG_ICON_SIZES, SVG_ICON_COLORS } from './constants/properties';  

Или остановить и перезапустить свой проект.

У меня есть один проект, который случайным образом отказывается получать доступ к вновь созданным файлам — исправление этого не входит в мои 20 лучших дел

Комментарии:

1. Эй, @пользователь, я понял это всего 2 секунды назад. Это было потому, что я .stories.tsx исключил в своем tsconfig.json