mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
fix(48081): omit error on importing variables defined with require() (#48115)
This commit is contained in:
parent
ca65a1a05b
commit
4a58fbce17
@ -3288,7 +3288,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
if (!isBindingPattern(node.name)) {
|
||||
if (isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !getJSDocTypeTag(node)) {
|
||||
if (isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !getJSDocTypeTag(node) && !(getCombinedModifierFlags(node) & ModifierFlags.Export)) {
|
||||
declareSymbolAndAddToSymbolTable(node as Declaration, SymbolFlags.Alias, SymbolFlags.AliasExcludes);
|
||||
}
|
||||
else if (isBlockOrCatchScoped(node)) {
|
||||
|
||||
16
tests/baselines/reference/importNonExportedMember12.symbols
Normal file
16
tests/baselines/reference/importNonExportedMember12.symbols
Normal file
@ -0,0 +1,16 @@
|
||||
=== /node_modules/foo/src/index.js ===
|
||||
module.exports = 1;
|
||||
>module.exports : Symbol(module.exports, Decl(index.js, 0, 0))
|
||||
>module : Symbol(export=, Decl(index.js, 0, 0))
|
||||
>exports : Symbol(export=, Decl(index.js, 0, 0))
|
||||
|
||||
=== /a.js ===
|
||||
export const A = require("foo");
|
||||
>A : Symbol(A, Decl(a.js, 0, 12))
|
||||
>require : Symbol(require)
|
||||
>"foo" : Symbol("/node_modules/foo/src/index", Decl(index.js, 0, 0))
|
||||
|
||||
=== /b.ts ===
|
||||
import { A } from "./a";
|
||||
>A : Symbol(A, Decl(b.ts, 0, 8))
|
||||
|
||||
19
tests/baselines/reference/importNonExportedMember12.types
Normal file
19
tests/baselines/reference/importNonExportedMember12.types
Normal file
@ -0,0 +1,19 @@
|
||||
=== /node_modules/foo/src/index.js ===
|
||||
module.exports = 1;
|
||||
>module.exports = 1 : number
|
||||
>module.exports : number
|
||||
>module : { exports: number; }
|
||||
>exports : number
|
||||
>1 : 1
|
||||
|
||||
=== /a.js ===
|
||||
export const A = require("foo");
|
||||
>A : number
|
||||
>require("foo") : number
|
||||
>require : any
|
||||
>"foo" : "foo"
|
||||
|
||||
=== /b.ts ===
|
||||
import { A } from "./a";
|
||||
>A : number
|
||||
|
||||
18
tests/cases/compiler/importNonExportedMember12.ts
Normal file
18
tests/cases/compiler/importNonExportedMember12.ts
Normal file
@ -0,0 +1,18 @@
|
||||
// @esModuleInterop: true
|
||||
// @moduleResolution: node
|
||||
// @module: es2015
|
||||
// @checkJs: true
|
||||
// @allowJs: true
|
||||
// @noEmit: true
|
||||
|
||||
// @Filename: /node_modules/foo/package.json
|
||||
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
|
||||
|
||||
// @Filename: /node_modules/foo/src/index.js
|
||||
module.exports = 1;
|
||||
|
||||
// @filename: /a.js
|
||||
export const A = require("foo");
|
||||
|
||||
// @filename: /b.ts
|
||||
import { A } from "./a";
|
||||
Loading…
x
Reference in New Issue
Block a user