Die große Neuigkeit in dieser Woche ist die Zusammenführung von AtScript und TypeScript.
Das folgende Beispiel aus der AtScript Dokumentation ...
@Component()
class MyApp {
server:Server;
@Bind('name') name:string;
@Event('foo') fooFn:Function;
@Inject()
constructor(@parent server:Server) {}
greet():string {}
}
Kompiliert in den folgenden 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 geplant wurde eine Schicht oben auf Typoskript sein (dh ein Super-Set von einem Super-Set - aber jetzt die two projects are one.
Annotations are described thus:
- AtScript Annotation Syntax ist nur eine Kurzschreibweise der gleichen Informationen in ES5 platzieren. Es wäre vernünftig für einen ES5-Entwickler, diese Annotationen manuell zu schreiben. Eine Hilfsbibliothek könnte sogar bereitgestellt werden.
Anmerkungen können nur auf Funktionen platziert werden.
Eine Annotation, die für eine Klasse platziert wird, ist eine Annotation, die auf die Konstruktorfunktion der Klasse platziert wird.
Eine Anmerkung, die auf einem Feld platziert ist, wird in die Konstruktorfunktion verschoben.
Alle Anmerkungen werden als Eigenschaften einer Funktion übersetzt.
Ich würde auf atscript lesen. es heißt eine Anmerkung. –
In TypeScript bezeichnet der Operator "@" einen Decorator (im obigen Beispiel einen Class Decorator). Sie können mehr über Dekoratoren in den TypeScript-Dokumenten erfahren (https://www.typescriptlang.org/docs/handbook/decorators.html). – sherb