// @lib: es5 // @noemithelpers: true // @experimentaldecorators: true declare var console : { log(arg: string): void }; function dec(): Function { return function (target: any, propKey: string, descr: PropertyDescriptor): void { console.log(target[propKey]); //logs undefined //propKey has three underscores as prefix, but the method has only two underscores }; } class A { @dec() private __foo(bar: string): void { // do something with bar } }