Microsoft/TypeScript

Unexpected "used before its declaration" error when implementing a exported type of a merged namespace

Open

#54,429 opened on May 28, 2023

View on GitHub
 (0 comments) (0 reactions) (0 assignees)TypeScript (6,726 forks)batch import
BugDomain: BinderHelp Wanted

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (Avg merge 6d 17h) (9 merged PRs in 30d)

Description

Bug Report

🔎 Search Terms

used before its declaration vscode

🕗 Version & Regression Information

  • tested in 4.7.3, 5.0.4 and nightly

⏯ Playground Link

Playground link with relevant code

💻 Code

namespace Foo {
    export interface Bar { }
}

class X implements Foo.Bar {

}

const Foo = 1;

🙁 Actual behavior

In VSCode it reports:

namespace Foo
Block-scoped variable 'Foo' used before its declaration.ts(2448)
Untitled-1(9, 7): 'Foo' is declared here.
Variable 'Foo' is used before being assigned.ts(2454)

You may not see the error immediately if you paste the code into a new file. It will appear when you start typing something.

Note that the error cannot be reproduced in the playground.

🙂 Expected behavior

No error.

Contributor guide