在打字课程中,我遇到了这些无法编译并给出错误TS2304的代码段。任何帮助表示赞赏。
文件ZooAnimals.ts:
namespace Zoo {
interface Animal {
skinType: string;
isMammal(): boolean;
}
}
文件ZooBirds.ts:
/// <reference path="ZooAnimals.ts" />
namespace Zoo {
export class Bird implements Animal {
skinType = "feather";
isMammal() {
return false;
}
}
}
用于编译文件的命令:
tsc --outFile Zoo.js ZooAnimals.ts ZooBirds.ts
抛出错误:
ZooBirds.ts:3:34 - error TS2304: Cannot find name 'Animal'.
3 export class Bird implements Animal {
答案 0 :(得分:1)
要使用跨文件的接口(或更确切地说,跨多个namespace
声明),必须将其导出(即使它是同一名称空间的一部分)。这将起作用:
namespace Zoo {
export interface Animal {
skinType: string;
isMammal(): boolean;
}
}
namespace Zoo {
export class Bird implements Animal {
skinType = "feather";
isMammal() {
return false;
}
}
}