Fix TypeScript decorator support (#5783)

* Fix TypeScript decorator support

* Update babel flow override

* WIP
This commit is contained in:
Ian Schmitz
2018-11-21 18:57:25 -08:00
committed by Joe Haddad
parent 2c92fd48f1
commit 445a56dab4
3 changed files with 29 additions and 1 deletions

View File

@@ -6,3 +6,9 @@ it('reads a typescript file with no syntax error', () => {
expect(App.foo.baz!.n).toBe(123);
expect(app.n).toBe(123);
});
it('supports decorators', () => {
const app = new App();
expect((app as any).annotated).toBe(true);
expect(app.decorated).toBe(42);
});

View File

@@ -10,10 +10,23 @@ type MyObject = Pick<MyType, 'bar' | 'baz'>;
class App {
static foo: MyObject = { bar: true, baz: { n: 123 } };
n = App.foo.baz!.n;
@propertyDecorator
decorated;
}
function annotation(target: any) {
target.annotated = true;
}
function propertyDecorator(target: any, key: string) {
if (delete target[key]) {
Object.defineProperty(target, key, {
get() {
return 42;
},
enumerable: true,
});
}
}
export default App;