#javascript #typescript
Вопрос:
По какой-то причине я не получаю никаких файлов .d.ts. Как я могу правильно создавать файлы определений?
команда компиляции
npx tsc
tsconfig.json
{ "compilerOptions": { "baseUrl": "./src", "target": "es5", "lib": ["dom", "dom.iterable", "esnext"], "rootDirs": [ "src", "stories", "config" ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "jsx": "react-jsx", // Ensure that .d.ts files are created by tsc, but not .js files "declaration": true, "emitDeclarationOnly": true, // Ensure that Babel can safely transpile files in the TypeScript project "isolatedModules": true, "outDir": "./dist" }, "include": ["./src/**/*.tsx"], "exclude": [ "node_modules", "dist", "docs" ] }
Src
src/components src/components/FormGenerator src/components/Input src/components/Link src/components/List src/components/MoneyFormat src/components/Select src/components/Svg src/components/TemplateComponent src/components/TemplateComponent/index.tsx src/components/TemplateComponent/TemplateComponent.stories.js src/components/TemplateComponent/TemplateComponent.test.tsx src/components/TemplateComponent/TemplateComponent.tsx src/components/Text src/components/Text/index.tsx src/components/Text/Text.stories.js src/components/Text/Text.tsx src/components/index.tsx src/themes src/themes/default src/themes/default/fonts src/themes/default/palette src/themes/default/typography src/themes/default/themeDefault.ts src/themes/default/variables.ts src/themes/fonts.d.ts src/react-app-env.d.ts src/setupTests.js
Комментарии:
1.
"include": ["./src/**/*.tsx"],
это уже удаляет любые.ts
или.js
2. Спасибо @ASDFGerte, Значит ли это, что я должен удалить эту строку? Или включить эту строку? Я не понимаю, извините!
3. Насколько я понял,
include
это не предотвращает добавление не включенных файлов в сборку (все еще может быть импортировано), но не добавляет их с самого начала. Если зависимости между вашими файлами от вашихimport
s (возможно, только здесь?) не переходят.tsx
ко всем этим файлам, они не будут использоваться. Почему он создает абсолютно нулевые файлы объявлений, я не знаю, но строка, по крайней мере, выглядит так, как будто это может быть частью проблемы — особенно, если она была добавлена, не зная, что она делает. Tl;dr; это может быть проблемой, но я не могу быть уверен, что ее удаление решит все.4. Я думаю,
baseUrl
это все портит. Обычно это папка, содержащаяsrc
, например,"baseUrl": "./"
5. О, очень интересно. Удаление
include
файла привело к появлению внутри/dist/src/components
всех файлов определений…