Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

vue-cli 提示 'get' and 'set' accessor must have the same type.

vue-cli 3 项目,使用了 class 风格的组件(vue-property-decorator)
2.png

有个 getter 和 setter,是 vue 实例的计算属性,因为用了 class 风格所以是用 get 和 set 写的。
编辑器提示 get 和 set 寄存器必须有相同的类型,这个地方我不理解,因为 get 和 set 的参数类型不一样,返回值也不一样,这个要求“相同的类型” 不懂什么意思。
不过运行时没有提示这个错误,可以正常使用。请大佬解惑~


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

get/set 对外表现为一个属性访问,自然要保证读写类型一致啊。你这样设计用的时候怎么用?读的时候读到的是 ListData[] ,写的时候要喂 string[] ? 这不是反直觉么?

let list = componnet.categoryList;
component.categoryList = list; // 这尼玛还能出鬼?刚取出来的东西还塞不回去?

这不是很好理解么?类型不一致用起来能活见鬼。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...