Отражающие аннотации могут добавляться только к классам и членам класса, как указано в документах :
Декораторы добавляют возможность увеличивать класс и его членов как
класс определяется через декларативный синтаксис
Первая аннотация добавляется к свойству outerProp
MyClass
, что нормально:
@Reflect.metadata("desc", "My outer property") // OK
outerProp: {
Но вторая аннотация добавляется в свойство интерфейса машинописного текста, а не класса. Это определение типа не будет существовать во время выполнения, потому что это всего лишь подсказка для компилятора машинописного текста, что означает, что вы не можете добавлять к нему аннотации:
@Reflect.metadata("desc", "My inner property") // Error
innerProp: string;
Чтобы устранить эту ошибку, вам необходимо провести рефакторинг outerProp
в именованный класс - обойти это невозможно, поскольку аннотации можно добавлять только к вещам, которые все еще присутствуют в скомпилированном javascript:
@Reflect.metadata("desc", "My outer property")
class OuterPropType {
@Reflect.metadata("desc", "My inner property")
innerProp: string;
}
class MyClass {
outerProp: OuterPropType;
}