Typescript只生成;出口{}&引用;在d.ts文件中
当我运行Typescript只生成;出口{}&引用;在d.ts文件中,typescript,Typescript,当我运行tsc命令生成编译的dist目录时,typescript似乎生成了一个空的/错误的d.ts文件 这是我的tsconfig.json: { "compilerOptions": { "module": "commonjs", "esModuleInterop": true, "target": "es2020", "modul
tsc
命令生成编译的dist
目录时,typescript似乎生成了一个空的/错误的d.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
export {};
//# sourceMappingURL=Test.d.ts.map
然后在我运行$tsc
之后,我在我的dist/index.d.ts
中得到这个:
class Test {
method = (string: string) => {
console.log(string)
}
}
module.exports = Test
export {};
//# sourceMappingURL=Test.d.ts.map
我可以通过将包作为npm依赖项导入到新项目中来确认导入是否有效。我可以导入Test
并成功执行const Test=new Test;test.method('hello world')
。只有.d.ts
文件不起作用
我正在运行typescript v4.0.5我通过执行以下操作解决了这个问题:
“模块”:“commonjs”
更新为“模块”:“es2020”
.ts
文件中,从module.exports=Test
更改为export default Test
在这些更改之后,正确生成了
.d.ts
文件。问题是我混合了commonjs和ES2020语法/设置。看起来你没有要传输的ts
文件,因为你只有一个js
文件,只在src
?@tmhao2005抱歉,它实际上是src/index.ts
,我只是把它输入了SO问题中。我现在已经纠正了这个问题。您使用的是哪个版本的typescript
?@tmhao2005 v4.0.5我所知道的一件奇怪的事情是,您的代码是用cjs
样式编写的,而这种样式应该是esnext
样式,这可能是问题所在。你能改变一下然后再试一次吗?