热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TypeScript中模块上的getter/setter

如何解决《TypeScript中模块上的getter/setter》经验,为你挑选了2个好方法。

我在我的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


推荐阅读
author-avatar
手机用户2502857517_939
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有