打字稿:找不到导出的AMD类的类型

时间:2016-11-25 13:46:42

标签: typescript requirejs amd

我正在使用带有requirejs设置的Typescript,因此typescript被配置为使用AMD模块。

我正在尝试导出一个类并从另一个类中使用它。这是一些示例代码。

//file: ClassA.ts
export = class ClassA {
}

//file: ClassB.ts
import ClassA = require("ClassA")

export = class ClassB {
    constructor(classA: ClassA) { //ClassA is not found
        // However this will work:
        let c = new ClassA();
    }
}

编译时我收到以下错误。

  

ClassB.ts(4,25):错误TS2304:找不到名称'ClassA'。

然而,对于ClassA的实例化,intellisense很好,我得到了实例的完整智能感知。

那我在这里做错了什么?

编辑:这是我的tsconfig.json

{
  "compileOnSave": true,
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "module": "amd"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

1 个答案:

答案 0 :(得分:1)

看起来您正在混合使用JavaScript和TypeScript语法来导出和导入类 试试这个语法:

ClassA.ts:
export class ClassA {
    print() {
        console.log(`ClassA.print()`);
    }
}

ClassB.ts:
import {ClassA} from './ClassA';

class ClassB {
    print() {
        let a = new ClassA();
        a.print();
    }
}