mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-13 06:20:23 -06:00
Merge pull request #8539 from Microsoft/resolveTargetForVarSymbol
resolve target of alias when getting member from the module
This commit is contained in:
commit
747924a3c5
@ -1057,6 +1057,8 @@ namespace ts {
|
||||
else {
|
||||
symbolFromVariable = getPropertyOfVariable(targetSymbol, name.text);
|
||||
}
|
||||
// if symbolFromVariable is export - get its final target
|
||||
symbolFromVariable = resolveSymbol(symbolFromVariable);
|
||||
const symbolFromModule = getExportOfModule(targetSymbol, name.text);
|
||||
const symbol = symbolFromModule && symbolFromVariable ?
|
||||
combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) :
|
||||
|
||||
23
tests/baselines/reference/exportEqualsOfModule.js
Normal file
23
tests/baselines/reference/exportEqualsOfModule.js
Normal file
@ -0,0 +1,23 @@
|
||||
//// [exportEqualsOfModule.ts]
|
||||
declare module '~popsicle/dist/request' {
|
||||
export class Request {}
|
||||
}
|
||||
|
||||
declare module '~popsicle/dist/common' {
|
||||
import { Request } from '~popsicle/dist/request';
|
||||
export { Request };
|
||||
}
|
||||
|
||||
declare module 'popsicle' {
|
||||
import alias = require('~popsicle/dist/common');
|
||||
export = alias;
|
||||
}
|
||||
|
||||
declare module 'popsicle-proxy-agent' {
|
||||
import { Request } from 'popsicle';
|
||||
function proxy(): (request: Request) => any;
|
||||
export = proxy;
|
||||
}
|
||||
|
||||
|
||||
//// [exportEqualsOfModule.js]
|
||||
35
tests/baselines/reference/exportEqualsOfModule.symbols
Normal file
35
tests/baselines/reference/exportEqualsOfModule.symbols
Normal file
@ -0,0 +1,35 @@
|
||||
=== tests/cases/compiler/exportEqualsOfModule.ts ===
|
||||
declare module '~popsicle/dist/request' {
|
||||
export class Request {}
|
||||
>Request : Symbol(Request, Decl(exportEqualsOfModule.ts, 0, 41))
|
||||
}
|
||||
|
||||
declare module '~popsicle/dist/common' {
|
||||
import { Request } from '~popsicle/dist/request';
|
||||
>Request : Symbol(Request, Decl(exportEqualsOfModule.ts, 5, 12))
|
||||
|
||||
export { Request };
|
||||
>Request : Symbol(Request, Decl(exportEqualsOfModule.ts, 6, 12))
|
||||
}
|
||||
|
||||
declare module 'popsicle' {
|
||||
import alias = require('~popsicle/dist/common');
|
||||
>alias : Symbol(alias, Decl(exportEqualsOfModule.ts, 9, 27))
|
||||
|
||||
export = alias;
|
||||
>alias : Symbol(alias, Decl(exportEqualsOfModule.ts, 9, 27))
|
||||
}
|
||||
|
||||
declare module 'popsicle-proxy-agent' {
|
||||
import { Request } from 'popsicle';
|
||||
>Request : Symbol(Request, Decl(exportEqualsOfModule.ts, 15, 12))
|
||||
|
||||
function proxy(): (request: Request) => any;
|
||||
>proxy : Symbol(proxy, Decl(exportEqualsOfModule.ts, 15, 39))
|
||||
>request : Symbol(request, Decl(exportEqualsOfModule.ts, 16, 23))
|
||||
>Request : Symbol(Request, Decl(exportEqualsOfModule.ts, 15, 12))
|
||||
|
||||
export = proxy;
|
||||
>proxy : Symbol(proxy, Decl(exportEqualsOfModule.ts, 15, 39))
|
||||
}
|
||||
|
||||
35
tests/baselines/reference/exportEqualsOfModule.types
Normal file
35
tests/baselines/reference/exportEqualsOfModule.types
Normal file
@ -0,0 +1,35 @@
|
||||
=== tests/cases/compiler/exportEqualsOfModule.ts ===
|
||||
declare module '~popsicle/dist/request' {
|
||||
export class Request {}
|
||||
>Request : Request
|
||||
}
|
||||
|
||||
declare module '~popsicle/dist/common' {
|
||||
import { Request } from '~popsicle/dist/request';
|
||||
>Request : typeof Request
|
||||
|
||||
export { Request };
|
||||
>Request : typeof Request
|
||||
}
|
||||
|
||||
declare module 'popsicle' {
|
||||
import alias = require('~popsicle/dist/common');
|
||||
>alias : typeof alias
|
||||
|
||||
export = alias;
|
||||
>alias : typeof alias
|
||||
}
|
||||
|
||||
declare module 'popsicle-proxy-agent' {
|
||||
import { Request } from 'popsicle';
|
||||
>Request : typeof Request
|
||||
|
||||
function proxy(): (request: Request) => any;
|
||||
>proxy : () => (request: Request) => any
|
||||
>request : Request
|
||||
>Request : Request
|
||||
|
||||
export = proxy;
|
||||
>proxy : () => (request: Request) => any
|
||||
}
|
||||
|
||||
19
tests/cases/compiler/exportEqualsOfModule.ts
Normal file
19
tests/cases/compiler/exportEqualsOfModule.ts
Normal file
@ -0,0 +1,19 @@
|
||||
declare module '~popsicle/dist/request' {
|
||||
export class Request {}
|
||||
}
|
||||
|
||||
declare module '~popsicle/dist/common' {
|
||||
import { Request } from '~popsicle/dist/request';
|
||||
export { Request };
|
||||
}
|
||||
|
||||
declare module 'popsicle' {
|
||||
import alias = require('~popsicle/dist/common');
|
||||
export = alias;
|
||||
}
|
||||
|
||||
declare module 'popsicle-proxy-agent' {
|
||||
import { Request } from 'popsicle';
|
||||
function proxy(): (request: Request) => any;
|
||||
export = proxy;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user