- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
TypeScript 是 ECMAScript 2015 的严格超集,并且已经具有装饰器支持。这是否意味着随着 ECMAScript 2016 装饰器的引入,TypeScript 装饰器变得多余,或者这是否意味着 future TypeScript 必须更改其底层实现以生成 ECMAScript 2016 装饰器?
最佳答案
正如 docs regarding decorators 中所述:
Decorators are an experimental feature that may change in future releases
Typescript 通过将输出编译成与目标环境匹配的 js,让您可以使用尚未在所有 js 环境中实现的 future 功能。
例如:
function deco(constructor: Function) { }
@deco
class A { }
编译成:
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
function deco(constructor) { }
var A = (function () {
function A() {
}
return A;
}());
A = __decorate([
deco
], A);
如您所见,js 版本包含使其工作所需的一切。
如果发生变化,那么是的,编译器将更改为输出正确的 js。
关于typescript - ECMAScript 2016 装饰器是否使 TypeScript 装饰器变得多余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070415/
我的服务层有如下方法 public ModuleResponse GetModules(ModuleRequest request) { var response = new ModuleRe
我构建的工具栏与大多数工具栏一样,minHeight 设置为 actionBarSize: 但是,如果我删除这个属性,就完全没有区别了。工具栏保持其 actionBarSize,即使我删除菜单并将
我已经为 SVG 和剪辑路径苦苦挣扎了一段时间。 我正在尝试创建一个三 Angular 形剪辑路径,它将覆盖照片以给顶部一个“三 Angular 形”边缘。 我试图实现与照片完全相同的效果,但三 An
我有一个带有 2 个索引的 PostgreSQL 表。其中一个索引涵盖了 website_id 和 tweet_id 列,是一个唯一的 B 树索引。第二个索引只覆盖 website_id 列,是一个非
我是一名优秀的程序员,十分优秀!