Anotaciones

Una anotación (annotation) no es más que un apunte sobre alguna cosa. Su sintaxis es como sigue:

@Nombre
@Nombre(argumentos)

Las anotaciones se pueden asociar a enumeraciones (enum), tipos (type) y funciones (fn).

Por ejemplo, se puede utilizar para indicar que lo que viene es la sobrescritura de un método heredado:

@override
fn Tipo.método()
  #...

Las anotaciones más comunes son las siguientes:

#indica que se trata de un tipo o función abstracta
@abstract

#solicita al compilador que cree el alias indicado para la función anotada
@alias("alias")

#indica un método a atar automáticamente al objeto self
@bind

#indica que estamos ante un tipo de datos con la capacidad de emitir eventos.
@emitter

#indica un método o función generadora de iteradores
@iter

#indica que el elemento al que anota sólo debe compilarse cuando se compile a JavaScript
@js

#indica un tipo mixable
@mixable

#indica que el método es una sobrescritura de uno heredado
@override

#indica la operación de lectura de una propiedad
@prop

#indica que el elemento al que anota sólo debe compilarse cuando se compile a Python
@py

#indica un método estático
@static

#indica un tipo, función o método pendiente de hacer. Inyecta automáticamente todo() en el cuerpo
@todo

#imprime por pantalla los argumentos pasados en una llamada a la función
@input