diff --git a/src/fast-path.js b/src/fast-path.js index 9aab6ad4b..be5bc1ef4 100644 --- a/src/fast-path.js +++ b/src/fast-path.js @@ -299,6 +299,7 @@ FastPath.prototype.needsParens = function(options) { return name === "callee" && parent.callee === node; case "ClassDeclaration": + case "TSAbstractClassDeclaration": return name === "superClass" && parent.superClass === node; case "TSTypeAssertionExpression": case "TaggedTemplateExpression": diff --git a/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap index 750938dba..25d5bea96 100644 --- a/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap @@ -8,6 +8,7 @@ this.isTabActionBar((e.target || e.srcElement) as HTMLElement); start + (yearSelectTotal as number) scrollTop > (visibilityHeight as number) export default class Column extends (RcTable.Column as React.ComponentClass>) {} +export abstract class MobxTypedForm extends (Form as { new (): any }) {} ({}) as {}; function*g() { const test = (yield 'foo') as number; @@ -39,6 +40,7 @@ scrollTop > (visibilityHeight as number); export default class Column extends (RcTable.Column as React.ComponentClass< ColumnProps >) {} +export abstract class MobxTypedForm extends (Form as { new (): any }) {} ({} as {}); function* g() { const test = (yield "foo") as number; diff --git a/tests/typescript_as/as.js b/tests/typescript_as/as.js index e12cbc1ee..b74f5f8a6 100644 --- a/tests/typescript_as/as.js +++ b/tests/typescript_as/as.js @@ -5,6 +5,7 @@ this.isTabActionBar((e.target || e.srcElement) as HTMLElement); start + (yearSelectTotal as number) scrollTop > (visibilityHeight as number) export default class Column extends (RcTable.Column as React.ComponentClass>) {} +export abstract class MobxTypedForm extends (Form as { new (): any }) {} ({}) as {}; function*g() { const test = (yield 'foo') as number;