打字稿:未找到导出的 AMD class 类型
Typescript: Type of exported AMD class not found
我在 requirejs 设置中使用 Typescript,因此 typescript 配置为使用 AMD 模块。
我正在尝试导出一个 class 并从另一个使用它。这是一些示例代码。
//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): error TS2304: Cannot find name 'ClassA'.
然而,智能感知对于 ClassA 的实例化没有问题,我得到了该实例的完整智能感知。
那么我做错了什么?
编辑:这是我的 tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"module": "amd"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
您似乎在混合使用 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();
}
}
我在 requirejs 设置中使用 Typescript,因此 typescript 配置为使用 AMD 模块。
我正在尝试导出一个 class 并从另一个使用它。这是一些示例代码。
//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): error TS2304: Cannot find name 'ClassA'.
然而,智能感知对于 ClassA 的实例化没有问题,我得到了该实例的完整智能感知。
那么我做错了什么?
编辑:这是我的 tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"module": "amd"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
您似乎在混合使用 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();
}
}