mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
fix(53735): Definition file generated from javascript is missing getter (#53768)
This commit is contained in:
parent
6c3239ce74
commit
546be4b360
@ -8684,7 +8684,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
}
|
||||
// Need to skip over export= symbols below - json source files get a single `Property` flagged
|
||||
// symbol of name `export=` which needs to be handled like an alias. It's not great, but it is what it is.
|
||||
if (symbol.flags & (SymbolFlags.BlockScopedVariable | SymbolFlags.FunctionScopedVariable | SymbolFlags.Property)
|
||||
if (symbol.flags & (SymbolFlags.BlockScopedVariable | SymbolFlags.FunctionScopedVariable | SymbolFlags.Property | SymbolFlags.Accessor)
|
||||
&& symbol.escapedName !== InternalSymbolName.ExportEquals
|
||||
&& !(symbol.flags & SymbolFlags.Prototype)
|
||||
&& !(symbol.flags & SymbolFlags.Class)
|
||||
|
||||
38
tests/baselines/reference/accessorDeclarationEmitJs.js
Normal file
38
tests/baselines/reference/accessorDeclarationEmitJs.js
Normal file
@ -0,0 +1,38 @@
|
||||
//// [a.js]
|
||||
export const t1 = {
|
||||
p: 'value',
|
||||
get getter() {
|
||||
return 'value';
|
||||
},
|
||||
}
|
||||
|
||||
export const t2 = {
|
||||
v: 'value',
|
||||
set setter(v) {},
|
||||
}
|
||||
|
||||
export const t3 = {
|
||||
p: 'value',
|
||||
get value() {
|
||||
return 'value';
|
||||
},
|
||||
set value(v) {},
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//// [a.d.ts]
|
||||
export namespace t1 {
|
||||
let p: string;
|
||||
let getter: string;
|
||||
}
|
||||
export namespace t2 {
|
||||
let v: string;
|
||||
let setter: any;
|
||||
}
|
||||
export namespace t3 {
|
||||
let p_1: string;
|
||||
export { p_1 as p };
|
||||
export let value: string;
|
||||
}
|
||||
41
tests/baselines/reference/accessorDeclarationEmitJs.symbols
Normal file
41
tests/baselines/reference/accessorDeclarationEmitJs.symbols
Normal file
@ -0,0 +1,41 @@
|
||||
=== /a.js ===
|
||||
export const t1 = {
|
||||
>t1 : Symbol(t1, Decl(a.js, 0, 12))
|
||||
|
||||
p: 'value',
|
||||
>p : Symbol(p, Decl(a.js, 0, 19))
|
||||
|
||||
get getter() {
|
||||
>getter : Symbol(getter, Decl(a.js, 1, 15))
|
||||
|
||||
return 'value';
|
||||
},
|
||||
}
|
||||
|
||||
export const t2 = {
|
||||
>t2 : Symbol(t2, Decl(a.js, 7, 12))
|
||||
|
||||
v: 'value',
|
||||
>v : Symbol(v, Decl(a.js, 7, 19))
|
||||
|
||||
set setter(v) {},
|
||||
>setter : Symbol(setter, Decl(a.js, 8, 15))
|
||||
>v : Symbol(v, Decl(a.js, 9, 15))
|
||||
}
|
||||
|
||||
export const t3 = {
|
||||
>t3 : Symbol(t3, Decl(a.js, 12, 12))
|
||||
|
||||
p: 'value',
|
||||
>p : Symbol(p, Decl(a.js, 12, 19))
|
||||
|
||||
get value() {
|
||||
>value : Symbol(value, Decl(a.js, 13, 15), Decl(a.js, 16, 6))
|
||||
|
||||
return 'value';
|
||||
},
|
||||
set value(v) {},
|
||||
>value : Symbol(value, Decl(a.js, 13, 15), Decl(a.js, 16, 6))
|
||||
>v : Symbol(v, Decl(a.js, 17, 14))
|
||||
}
|
||||
|
||||
51
tests/baselines/reference/accessorDeclarationEmitJs.types
Normal file
51
tests/baselines/reference/accessorDeclarationEmitJs.types
Normal file
@ -0,0 +1,51 @@
|
||||
=== /a.js ===
|
||||
export const t1 = {
|
||||
>t1 : { p: string; readonly getter: string; }
|
||||
>{ p: 'value', get getter() { return 'value'; },} : { p: string; readonly getter: string; }
|
||||
|
||||
p: 'value',
|
||||
>p : string
|
||||
>'value' : "value"
|
||||
|
||||
get getter() {
|
||||
>getter : string
|
||||
|
||||
return 'value';
|
||||
>'value' : "value"
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
export const t2 = {
|
||||
>t2 : { v: string; setter: any; }
|
||||
>{ v: 'value', set setter(v) {},} : { v: string; setter: any; }
|
||||
|
||||
v: 'value',
|
||||
>v : string
|
||||
>'value' : "value"
|
||||
|
||||
set setter(v) {},
|
||||
>setter : any
|
||||
>v : any
|
||||
}
|
||||
|
||||
export const t3 = {
|
||||
>t3 : { p: string; value: string; }
|
||||
>{ p: 'value', get value() { return 'value'; }, set value(v) {},} : { p: string; value: string; }
|
||||
|
||||
p: 'value',
|
||||
>p : string
|
||||
>'value' : "value"
|
||||
|
||||
get value() {
|
||||
>value : string
|
||||
|
||||
return 'value';
|
||||
>'value' : "value"
|
||||
|
||||
},
|
||||
set value(v) {},
|
||||
>value : string
|
||||
>v : string
|
||||
}
|
||||
|
||||
24
tests/cases/compiler/accessorDeclarationEmitJs.ts
Normal file
24
tests/cases/compiler/accessorDeclarationEmitJs.ts
Normal file
@ -0,0 +1,24 @@
|
||||
// @allowJs: true
|
||||
// @checkJs: true
|
||||
// @declaration: true
|
||||
// @emitDeclarationOnly: true
|
||||
// @filename: /a.js
|
||||
export const t1 = {
|
||||
p: 'value',
|
||||
get getter() {
|
||||
return 'value';
|
||||
},
|
||||
}
|
||||
|
||||
export const t2 = {
|
||||
v: 'value',
|
||||
set setter(v) {},
|
||||
}
|
||||
|
||||
export const t3 = {
|
||||
p: 'value',
|
||||
get value() {
|
||||
return 'value';
|
||||
},
|
||||
set value(v) {},
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user