我正在使用带有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"
]
}
答案 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();
}
}