fix(53735): Definition file generated from javascript is missing getter (#53768)

This commit is contained in:
Oleksandr T 2023-04-26 00:42:15 +03:00 committed by GitHub
parent 6c3239ce74
commit 546be4b360
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 155 additions and 1 deletions

View File

@ -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)

View 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;
}

View 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))
}

View 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
}

View 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) {},
}