Skip to content

"declare global" prevents accessing parent scope (no-undef) #21

Closed
@JamesHenry

Description

@JamesHenry

This issue was initially reported here: eslint/typescript-eslint-parser#579


What version of TypeScript are you using?
3.1.3

What version of typescript-eslint-parser are you using?
21.0.2

What code were you trying to parse?

import React from 'react';

declare global {
  interface Global {
    __r: typeof React;
  }
}

// To complement `global.__r = React;`

What did you expect to happen?
No lint errors

What happened?

6:18 error 'React' is not defined no-undef

typescript-eslint-parser/analyze-scope.js:Referencer.visitGlobalAugmentation seems to replace the current scope with the global one, which makes accessing React in the above example
incorrectly say it's not defined.

@mysticatea (via #540): what case does visitGlobalAugmentation solve?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginscope analyserIssues that are caused by bugs/incomplete cases in the scope analyser

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions