请教老师一个泛型的问题,这里为什么不行?

来源:2-21 【讨论题】对 Typescript 初步学习后的印象和困惑

qq_京门_03145109

2021-09-25

图片描述替换成(‘name’)就可以正常运行,为什么变量不能直接使用?烦请老师指教

写回答

1回答

张轩

2021-09-26

同学你好 很好的问题,其实看错误你就能发现端倪,这里的 fields 只允许一个联合类型,是字符串字面量的联合类型(name | age),但是 fields 你的类型定义是 string,所以类型不匹配,报错。

如果直接使用 name ,这个字符串本身是一个类型,也就是 'name' 这个类型,属于 'name' | 'age' 类型,所以没问题。

如果你将 let fields: string = 'name'

修改为 const fields = 'name' 你就会发现也能通过,我想其中的原因经过我的解释你也能理解,不理解可以鼠标移动到 fields 上面,看看它是个什么类型。

0
1
qq_京门_03145109
多谢老师讲解
2021-09-27
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程