microsoft / microsoft/TypeScript
Object.freeze after object creation doesn't error
未关闭
还没有人认领这个 Issue。
Docs
- 主要语言
- Go
- 星标
- 111k
- 派生
- 14.3k
- 平均合并
- 2 天 4 小时
- 30 天内合并 PR
- 132
描述
TypeScript Version: 3.5.1
Search Terms: Object.freeze, freeze, freezing, properties, object, objects, property
Code
const a = Object.freeze({a: 0});
a.a = 1; // Error: Cannot assign read-only property
const b = {b: 0};
Object.freeze(b);
b.b = 1; // No error?
const c = {c: {d: 0}};
Object.freeze(c.c);
c.c.d = 1; // No error?
Expected behavior:
Cannot assign read-only property errors for the two lines with "No error?" above.
Actual behavior:
No errors
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
在链接的 TypeScript Playground 中重现三个 Object.freeze 示例,并比较每个赋值的诊断结果。跟踪处理 Object.freeze 调用的类型检查路径,并通过针对性的编译器测试验证行为。完成的标准是:创建后的两个赋值都产生预期的只读属性错误,同时不使第一个示例发生回归。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- typescript
- 领域
- compilers
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 35/100