Microsoft/TypeScript
View on GitHubAccessors are always reduced to properties in object literal declarations
Open
#53,775 opened on Apr 14, 2023
BugDomain: Declaration EmitHelp Wanted
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (Avg merge 6d 17h) (9 merged PRs in 30d)
Description
Bug Report
Currently, accessors in object literals are condensed in plain properties - this an issue when get/set use different types. The workaround is to explicitly specify the type (see playground). Ideally, accessor should be preserved in declaration files, when possible.
🔎 Search Terms
accessors, object literal
🕗 Version & Regression Information
/
⏯ Playground Link
Playground link with relevant code
💻 Code
export const Foo = {
get bar(): number { /* ... */ },
set bar(value: number | string) { /* ... */ }
};
🙁 Actual behavior
export declare const Foo: {
bar: number;
};
🙂 Expected behavior
export declare const Foo: {
get bar(): number;
set bar(value: number | string);
};