我正在尝试使用一些打字稿。这就是我的样子:
each
当我这样做时,我收到此错误:
无法在环境上下文中声明实现。
当我取出模块时,它可以正常工作:
declare module ServiceActions {
export class MyClass{
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
}
我以为我读过模块就像在Typescript中的命名空间一样,但这似乎使它更像是一个抽象/接口概念。
我是否因为该模块而遇到此错误?如果没有,为什么我会遇到这个错误?
注意:我看到了这个question and answer但它没有回答我的问题。
答案 0 :(得分:6)
在这种情况下,由于declare
关键字,您处于“环境”上下文中。你想要的是在模块上使用export
:
export module ServiceActions {
export class MyClass{
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
}
你也可以完全放弃export
,这更像是命名空间声明。如果您使用AMD或CommonJS或ES2015之类的模块声明,则需要export
。
declare
。所以也许:
declare module ServiceActions {
interface MyInterface {
myFunction(shipmentId: number) : void;
}
}
module ServiceActions {
export class MyClass implements MyInterface {
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
}
例如,您会在.d.ts
个文件中看到很多内容。