cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

是时候用 `label.text` 逐步取代 `label.string`了

Open finscn opened this issue 7 months ago • 4 comments

Use Case

对象的属性名使用 关键字/保留字 是一种很不好的设计 ( 一些lint 规则里甚至直接禁止了类似操作) 但是因为历史原因, label.string 一直沿用至今.

我觉得应该逐步用 label.text 代替 label.string,
暂时可以两个属性共存, 但是 将 string 设置为 @deprecated , 不推荐使用, 并适当给予警告.

在 3.9 或者 3.10 时, 完全消灭 label.string .

另外, 希望 新的 label.text 可以直接支持 数值和布尔类型.

Problem Description

.

Proposed Solution

No response

How it works

No response

Alternatives Considered

.

Additional Information

No response

finscn avatar Apr 15 '25 11:04 finscn

瞎搞,label.text,其他组件都是xx.string,凭什么你这个组件就改为.text,一个api一旦确定了,就确定了,除非特别必要,一般不能改,这种入门级的规则都没玩明白吗?再说了,所有组件都是.string非常好记,弄的非常不统一难道你不觉得很累吗?

boboji007 avatar May 11 '25 01:05 boboji007

瞎搞,label.text,其他组件都是xx.string,凭什么你这个组件就改为.text,一个api一旦确定了,就确定了,除非特别必要,一般不能改,这种入门级的规则都没玩明白吗?再说了,所有组件都是.string非常好记,弄的非常不统一难道你不觉得很累吗?

关于 其他组件都是 xx.string , cocos 里好像只有3个组件用的 string属性, label , richText, editor, 可以都改了.

用 关键字/保留字 做属性名或者变量名 本来就是错误的反模式, 纠正这个错误 只需要修改名字, 而不是修改功能和用法, 没什么问题. 很多软件也都会不断的修复类似命名不规范 翻译不准确 拼写错误 一类的问题.

不能用"已经发布了/有历史包袱"做挡箭牌, 一直错下去.

finscn avatar May 13 '25 08:05 finscn

“只有3个组件用的 string属性”,你要不要好好翻翻官网,一堆好吧。。。

boboji007 avatar May 13 '25 14:05 boboji007

“只有3个组件用的 string属性”,你要不要好好翻翻官网,一堆好吧。。。

我看官网了, 也全文搜索了引擎源码. 有 string属性 的组件只找到我前面提到的3个.

Image

我说的是属性名字, 不是属性类型. 你是不是搞混了?

finscn avatar May 13 '25 19:05 finscn