Skip to content

[Bug]: Babel should not add assignment operations when using namespace + declare class #14773

@yimingjfe

Description

@yimingjfe

💻

  • Would you like to work on a fix?

How are you using Babel?

@babel/register or @babel/node

Input code

export namespace MyNamespace{
  export declare class MyClass {
  }
}

const AffiliateSelectionService = MyNamespace.MyClass;

Configuration file name

No response

Configuration

No response

Current and expected behavior

babel: https://babeljs.io/repl/#?browsers=defaults%2C%20not%20ie%2011%2C%20not%20ie_mob%2011&build=&builtIns=usage&corejs=3.6&spec=true&loose=true&code_lz=KYDwDg9gTgLgBAOwIYFtgGcxIMbDgWQE8A5VDLXAbwCg45RJY4ATYbAGySjw6XXQKEAwp35wadAL7Vp1bBATp4REXwEBeQaTSYcwAHQrR6ANxA&debug=false&forceAllTransforms=true&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=env%2Ctypescript&prettier=true&targets=&version=7.18.9&externalPlugins=&assumptions=%7B%7D

// Babel output
(function (_MyNamespace) {
  _MyNamespace.MyClass = MyClass;
})(MyNamespace || (exports.MyNamespace = MyNamespace = {}));

typescript: https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBAOwIYFtgGcxIMbDgWQE8A5VDLXAbwCg45RJY4ATYbAGySjw6XXQKEAwp35wadAL7Vp1atggJ08IiL4CAvINJpMOYADpVo9AG4gA

// Typescript output
(function (MyNamespace) {
})(MyNamespace || (MyNamespace = {}));

Environment

  • System:
    OS: macOS 10.15.7
  • Binaries:
    Node: 14.17.6 - ~/.nvm/versions/node/v14.17.6/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 6.14.15 - ~/.nvm/versions/node/v14.17.6/bin/npm

Possible solution

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: typescriptoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions