Preserve `set`-only accessors in declaration emit
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- typescript
- 领域
- compilers
调研方向
从链接的 Playground 开始,复现 same、divergent、readonly 和 writeonly 访问器的声明输出。跟踪 TypeScript 针对对象访问器的声明发出路径,并对比现有的访问器相关测试或基线;当 write-only 访问器在发出的声明中得以保留,同时不改变其他显示的输出时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Related to https://github.com/microsoft/TypeScript/issues/58112#issuecomment-2043419380
export let same = {
set x(value: string) {
},
get x(): string {
throw new Error("Not implemented.")
},
};
export let divergent = {
set x(value: string) {
},
get x(): number {
throw new Error("Not implemented.")
},
};
export let readonly = {
get x(): string {
throw new Error("Not implemented.")
},
};
export let writeonly = {
set x(value: string) {
},
};
Current
Notice that in the declaration of writeonly, we don't preserve the accessor at all.
export declare let same: {
x: string;
};
export declare let divergent: {
get x(): number;
set x(value: string);
};
export declare let readonly: {
readonly x: string;
};
export declare let writeonly: {
x: string;
};
Expected
If we had a writeonly modifier, I'd argue we could just use that as a parallel to the readonly declaration; however, we do support accessors in declaration emit, and we could emit that in the case of a write-only accessor.
It is technically a breaking change though for consumers of older TypeScript versions, and the only way to opt out would be to declare a no-op get accessor.
export declare let same: {
x: string;
};
export declare let divergent: {
get x(): number;
set x(value: string);
};
export declare let readonly: {
readonly x: string;
};
export declare let writeonly: {
set x(): string;
};
- 主要语言
- Go
- 星标
- 111k
- 派生
- 14.4k
- 平均合并
- 1 天 19 小时
- 30 天内合并 PR
- 117
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/TypeScript 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
microsoft/TypeScript#64322 · 2 条评论 · 1 个 reaction · 已指派 2 人 ·
-
Possible Improvement
难度 2/5 1-3 小时 新手友好度 78/100
microsoft/TypeScript#64278 · 1 条评论 · 1 个 reaction ·
-
Docs
难度 2/5 1-3 小时 新手友好度 70/100
microsoft/TypeScript#64118 · 1 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 88/100
microsoft/TypeScript#64094 ·
-
Docs
难度 2/5 1-3 小时 新手友好度 76/100
microsoft/TypeScript#63959 · 5 条评论 ·
查看 microsoft/TypeScript 的全部 Issue
相似的 Issue
-
kind/bug
难度 2/5 1-3 小时 新手友好度 88/100
kubernetes-sigs/prow#953 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
caddyserver/caddy#8046 ·
-
难度 2/5 1-3 小时 新手友好度 86/100
-
L1 recommended for recruits
难度 2/5 1-3 小时 新手友好度 88/100
-
area/entangle bug
难度 1/5 1 小时以内 新手友好度 92/100