Ignore abstract methods when decorating class (#11345)
* Ignore abstract methods when decorating class * Address Nico's feedback * Add input/output test * Update test output to account for _nonIterableRest changes
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
function decorate(value: boolean) {
|
||||
return function(
|
||||
target: any,
|
||||
propertyKey: string,
|
||||
descriptor: PropertyDescriptor
|
||||
) {};
|
||||
}
|
||||
|
||||
abstract class A {
|
||||
@decorate(false)
|
||||
private decoratedMember: boolean;
|
||||
|
||||
abstract myMethod(): number;
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
myMethod(): number {
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
||||
const b = new B();
|
||||
expect(b.myMethod()).toBe(5);
|
||||
@@ -0,0 +1,26 @@
|
||||
function decorate(value: boolean) {
|
||||
return function(
|
||||
target: any,
|
||||
propertyKey: string,
|
||||
descriptor: PropertyDescriptor
|
||||
) {};
|
||||
}
|
||||
|
||||
abstract class A {
|
||||
@decorate(false)
|
||||
private decoratedMember: boolean;
|
||||
|
||||
abstract myMethod(): void;
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
myMethod(): void {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const b = new B();
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"presets": [
|
||||
["typescript"]
|
||||
],
|
||||
"plugins": [
|
||||
["proposal-decorators", { "decoratorsBeforeExport": true }],
|
||||
["proposal-class-properties"]
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user