我正在尝试开始使用一些打字稿.这就是我的样子:
declare module ServiceActions {
export class MyClass{
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到此错误:
无法在环境上下文中声明实现.
当我取出模块时,它工作正常:
export class MyClass{
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
Run Code Online (Sandbox Code Playgroud)
我以为我读过模块就像在Typescript中的命名空间一样,但这似乎使它更像是一个抽象/接口概念.
我是否真的因为模块而出现此错误?如果没有,为什么我会遇到这个错误?
注意:我看到了这个问题和答案,但没有回答我的问题.
在这种情况下,由于declare关键字,您处于"环境"上下文中.你想要的是export在你的模块上使用:
export module ServiceActions {
export class MyClass{
myFunction(shipmentId: number) : void {
let test: number;
test = 32;
}
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以完全放弃export,这更像是命名空间声明.export如果您使用AMD或CommonJS或ES2015之类的模块声明,则需要它.
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如,你会在.d.ts文件中看到很多东西.
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |