Skip to content

Unnecessary reference checks with ambient classes (regression) #23828

Closed
@falsandtru

Description

@falsandtru

cc @weswigham

TypeScript Version: master

Search Terms:

Code

// index.d.ts
export class C extends Object {
  static readonly p: unique symbol;
  [C.p](): void;
}
// index.ts
declare class C extends Object {
  static readonly p: unique symbol;
  [C.p](): void;
}

Expected behavior:

pass

Actual behavior:

$ node built/local/tsc.js index.d.ts -t esnext
index.d.ts:1:14 - error TS2506: 'C' is referenced directly or indirectly in its own base expression.

1 export class C extends Object {
               ~

Playground Link:

Related Issues:

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptES6Relates to the ES6 Spec

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions