Skip to content

Different definition behavior for import vs require  #23742

Closed
@mjbvz

Description

@mjbvz

From microsoft/vscode#48820

TypeScript Version: 2.9.0-dev.20180427

Search Terms:

  • definition
  • javascript

Code
For the project:

base.js

module.exports = class Base {
	constructor() {
		console.log( "base" );
	}
}

foo.js

const Base = require( "./base" );

class Foo extends Base {
	bar() {
		const base      = new Base();
		const BaseClass = Base;
	}
}
  1. Run go to definition on Base in new Base() in foo

Expected behavior:
Goes to class Base in bar.js

Actual behavior:
Goes to require. If you use an import, we navigate to the class itself instead of to the import

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptFixedA PR has been merged for this issue

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions