#typescript
#typescript
Вопрос:
Когда я запускаю tsc
команду для создания моего скомпилированного dist
каталога, typescript, похоже, генерирует пустой / неправильный общий файл.ts.
Это мой tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es2020",
"moduleResolution": "Node",
"noImplicitAny": true,
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "dist",
"strict": true,
"declaration": true,
"declarationMap": true
},
"lib": ["es2020"],
"compileOnSave": true,
"include": [
"src"
]
}
Это мой src/index.ts
:
class Test {
method = (string: string) => {
console.log(string)
}
}
module.exports = Test
А потом , после того как я побегу $ tsc
, я получу это в свой dist/index.d.ts
:
export {};
//# sourceMappingURL=Test.d.ts.map
Импортируя пакет в новый проект в качестве зависимости от npm, я могу подтвердить, что импорт работает. Я могу импортировать Test
и успешно выполнить const test = new Test; test.method('hello world')
. Это только тот .d.ts
файл, который не работает.
Я использую typescript v4.0.5
Комментарии:
1. Похоже, у вас нет
ts
файлов для переноса, поскольку у вас есть только одинjs
файлsrc
?2. @tmhao2005 извините, что это на самом деле
src/index.ts
, я просто неправильно ввел это в вопрос SO. Теперь я исправил вопрос.3. Хммм. Какую версию
typescript
вы используете?4. @tmhao2005 v4.0.5
5. Странная вещь, о которой я знаю, заключается в том, что ваш код написан в
cjs
стиле, который должен бытьesnext
стилем, а не стилем, что, вероятно, является проблемой. Можете ли вы изменить это и повторить попытку?
Ответ №1:
Я решил, выполнив следующее:
- Изменено
tsconfig.json
путем обновления"module": "commonjs"
до"module": "es2020"
- В
.ts
файле измените сmodule.exports = Test
наexport default Test
После этих изменений .d.ts
файлы были сгенерированы правильно. Проблема заключалась в том, что я смешивал синтаксис / настройки commonjs и ES2020.