La grande novità di questa settimana è la fusione di AtScript e TypeScript.
Il seguente esempio dalla documentazione AtScript ...
@Component()
class MyApp {
server:Server;
@Bind('name') name:string;
@Event('foo') fooFn:Function;
@Inject()
constructor(@parent server:Server) {}
greet():string {}
}
compila in seguente 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 è stato progettato per essere un livello sopra dattiloscritto (cioè un super-set di un super-set) - ma ora lo two projects are one.
Annotations are described thus:
- AtScript sintassi annotazione è solo una scorciatoia di porre le stesse informazioni in ES5. Sarebbe ragionevole per uno sviluppatore ES5 scrivere queste annotazioni manualmente. Potrebbe anche essere fornita una libreria di supporto.
Le annotazioni possono essere inserite solo sulle funzioni.
Un'annotazione posizionata su una classe è un'annotazione posizionata sulla funzione di costruzione della classe.
Un'annotazione posizionata su un campo viene spostata nella funzione di costruzione.
Tutte le annotazioni sono tradotte come proprietà su una funzione.
Vorrei leggere su atscript. si chiama annotazione. –
In TypeScript, l'operatore "@" indica un decoratore (nell'esempio sopra, un decoratore di classe). Puoi saperne di più sui decoratori in [documenti TypeScript] (https://www.typescriptlang.org/docs/handbook/decorators.html). – sherb