javascript angular typescript atscript

javascript - ¿Qué significa @(en el signo) en el último ejemplo de TypeScript(probablemente v1.5)?



angular atscript (1)

Hay una foto muy interesante que fue publicada en el blog oficial de TypeScript.

Me pregunto qué hará allí el símbolo @ (en el signo) ya que (hasta donde sé) no se puede usar en los identificadores de JavaScript.


La gran noticia de esta semana es la fusión de AtScript y TypeScript.

El siguiente ejemplo de la documentación de AtScript ...

@Component() class MyApp { server:Server; @Bind(''name'') name:string; @Event(''foo'') fooFn:Function; @Inject() constructor(@parent server:Server) {} greet():string {} }

Compila en el siguiente 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;

Se planificó que AtScript fuera una capa encima de TypeScript (es decir, un superconjunto de un superconjunto), pero ahora los dos proyectos son uno .

Las anotaciones se describen así :

  • La sintaxis de anotación de AtScript es solo una forma abreviada de colocar la misma información en ES5. Sería razonable para un desarrollador de ES5 escribir estas anotaciones manualmente. Incluso se podría proporcionar una biblioteca auxiliar.
  • Las anotaciones solo se pueden colocar en funciones.

  • Una anotación colocada en una clase es una anotación colocada en la función constructora de la clase.

  • Una anotación colocada en un campo se mueve a la función de constructor.

  • Todas las anotaciones se traducen como propiedades en una función.