在 TypeScript 官方博客中发布了一张非常有趣的图片。
我想知道 @(at 符号)符号在那里做什么,因为(据我所知)它不能用于 JavaScript 标识符。
本周的大新闻是 AtScript 和 TypeScript 的合并。
AtScript 文档中的以下示例...
@Component()
class MyApp {
server:Server;
@Bind('name') name:string;
@Event('foo') fooFn:Function;
@Inject()
constructor(@parent server:Server) {}
greet():string {}
}
编译成以下 JavaScript...
function MyApp() {}
MyApp.properties = {
'server': { is: Server },
'name': { is:string,
annotate: [new Bind('name']},
'fooFn': { is:Function,
annotate:[new Event('foo')]}
}
MyApp.annotate = [
new Component(),
new Inject()
];
MyApp.parameters = [
{is:Server, annotate:[parent]}
];
MyApp.prototype.greet = function() {}
MyApp.prototype.greet.returns = string;
AtScript 计划成为 TypeScript 之上的一个层(即超集的超集) - 但现在这两个项目是一个.
注解只能放在函数上。
放置在类上的注解是放置在类的构造函数上的注解。
放置在字段上的注释被移动到构造函数。
所有注释都被翻译为函数的属性。