Najważniejszą wiadomością w tym tygodniu jest połączenie AtScript i TypeScript.
Poniższy przykład z dokumentacji AtScript ...
@Component()
class MyApp {
server:Server;
@Bind('name') name:string;
@Event('foo') fooFn:Function;
@Inject()
constructor(@parent server:Server) {}
greet():string {}
}
Kompiluje na następujące 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 planowano być warstwa na górze maszynopisu (czyli super-zestaw super-set) - ale teraz jest to two projects are one.
Annotations are described thus:
- składnia adnotacja AtScript jest tylko skrótem wprowadzania tych samych informacji w ES5. Rozsądne byłoby pisanie tych adnotacji ręcznie przez programistę ES5. Można nawet zapewnić bibliotekę pomocniczą.
Adnotacje można umieszczać tylko na funkcjach.
Adnotacja umieszczona na klasie jest adnotacją umieszczoną w funkcji konstruktora klasy.
Adnotacja umieszczona na polu zostaje przeniesiona do funkcji konstruktora.
Wszystkie adnotacje są tłumaczone jako właściwości funkcji.
Przeczytałbym o atscript. nazywa się to adnotacją. –
W TypeScript, operator "@" oznacza dekorator (w powyższym przykładzie dekorator klasy). Możesz dowiedzieć się więcej o dekoratorach w [dokumentach TypeScript] (https://www.typescriptlang.org/docs/handbook/decorators.html). – sherb