Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript只生成;出口{}&引用;在d.ts文件中_Typescript - Fatal编程技术网

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
    样式,这可能是问题所在。你能改变一下然后再试一次吗?