作者:手机用户2502857517_939 | 来源:互联网 | 2023-05-19 16:34
我在我的TypeScript项目中使用AMD模块(编译器标志"--module amd").虽然我可以在我的课程上轻松使用getter/setter,但我想在我的模块上做同样的事情
export get abc() : string {
return "abc";
}
回报
错误TS1008:意外的令牌; '模块,类,接口,枚举,导入或声明'预期.
和
export function get abc() : string {
return "abc";
}
回报
错误TS1005:'('预期.
我究竟做错了什么?
1> Fenton..:
您现在只能将getter和setter添加到类中.
TypeScript在getter和setter上使用的代码转换将属性添加到对象的原型中,这对于类而言比对模块更有意义.
2> Daniel Earwi..:
使用以下特殊export = ...
语法可以实现:
class MyModule {
get abc() {
return "abc";
}
}
var myModule = new MyModule();
export = myModule;
这使得该类的实例MyModule
充当模块的API。您不必在类中放入任何数据-只需将函数移入类中,否则就可以保持不变。缺点是,如果函数a
调用函数b
,则必须说this.b()
或myModule.b()
(后者更接近正常的模块导出)。
另外,您必须先声明一个命名变量。您不能只说:
export = new MyModule(); // This doesn't work