These are hard-coded language characteristics. Annotations are just metadata that is applied to a class in order to represent the metadata library. When a user annotates a class, the compiler creates an annotations property, saves an annotation array in it, and then attempts to instantiate an object with the same name as the annotation, passing the information into the constructor. Because annotations in AngularJs are not specified, we can name them ourselves.