docs: function typeAnnotation(type) {
      return (target, key, index) => {
          const classAnnotationsStore = container.get(AnnotationsServiceName.ClassAnnotationsStore);
          const classTypesStore = container.get(TypesServiceName.ClassTypesStore);
          if (index === undefined) {
              // property
              classAnnotationsStore.addPropertyAnnotation(target.constructor, key, Type, { type });
              classTypesStore.setPropertyType(target.constructor, key, type);
          }
          else {
              // method parameter
              classAnnotationsStore.addMethodParameterAnnotation(target.constructor, key, index, Type, { type });
              classTypesStore.setMethodParameterType(target.constructor, key, index, type);
          }
      };
  }