2015-12-28 10 views
6

ho cercato di applicare il @Reflect.metadata decoratore a una classe dattiloscritto, seguendo l'esempio sulle linee 82-84 di reflect-metadata.d.ts:@ Reflect.metadata genera l'errore TS1238: Impossibile risolvere la firma di classe decoratrice quando viene chiamato come espressione

/// <reference path="node_modules/reflect-metadata/reflect-metadata.d.ts"/> 

@Reflect.metadata('key', 0) 
class C { 
} 

Tuttavia, il compilatore dattiloscritto 1.7.2 genera il seguente errore sulla linea @Reflect.metadata:

errore TS1238: Impossibile risolvere la firma di classe decoratrice quando viene chiamato come espressione.
Impossibile richiamare un'espressione il cui tipo non ha una firma di chiamata.

Cosa c'è che non va?

risposta

0

Dal dattiloscritto docs:

Decoratori vengono controllati come espressioni di chiamata

A partire dalla 1.6, decoratori controllo di tipo è più preciso; il compilatore controllerà un'espressione decoratore come un'espressione di chiamata con l'entità decorata come parametro. Ciò può causare la segnalazione di errori non presenti nelle versioni precedenti.

La mia ipotesi è che probabilmente è necessario utilizzare una versione più recente di macchina o una vecchia versione di reflect-metadata.

Le ultime versioni sono:

Problemi correlati