结合导入,在打字稿声明文件中声明关键字

时间:2019-05-28 16:27:05

标签: typescript

当将importdeclare语句结合使用时,Typescript编译器无法正常工作。

例如: 我们有class.d.ts个包含内容的文件

declare class ModuleClass {}

和文件main.ts

new ModuleClass()

在这种情况下,打字稿可以毫无错误地进行编译。

但是,如果我像这样在import中添加class.d.ts语句:

import * as react from "react"

declare class ModuleClass {}

在这种情况下,打字稿将因下一个错误而失败:

src/class.ts:1:5 - error TS2304: Cannot find name 'ModuleClass'.

1 new ModuleClass()
      ~~~~~~~~~~~


Found 1 error.

我在做什么错?可能是我为tsconfig.json设置了一组错误的选项?

{
    "compilerOptions": {
        "allowSyntheticDefaultImports": true, 
        "jsx": "react",
        "module": "es6",
        "target": "es5",
        "moduleResolution": "node",
        "strict": true,
        "esModuleInterop": true,
        "noEmitHelpers": true,
        "outDir": "js",
        "rootDir": "src",
        "sourceMap": true,
    },
    "include": [
        "./typings/*",
        "./src/**/*"
    ]
}

1 个答案:

答案 0 :(得分:0)

您必须从src/class.ts导出类:

我将ModuleClass设置为const,然后将其导出为这样:

const ModuleClass = { };
export default ModuleClass;