请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于result 推断为true 而不是 boolean?

老师,你好,这里的result 推断为 true 为何不是Boolean ? result2 推断为[number, string], 不是[123,‘string’]? 这两种情况有什么区别?
图片描述
图片描述

正在回答 回答被采纳积分+3

插入代码

1回答

张轩 2020-05-06 10:09:47

同学你好 非常细心的发现 发现了基础里面没有讲的内容 在 ts 中其实还有一种特殊的类型,

称之为 字面量 literal types,它是一个特殊的类型,这个类型就只能是一个原始数据类型 primitive values,举个例子。

1
2
let str: 'name' 'name'
let number: 1 = 1

现在 str 和 number 就是 ‘name’类型 和 1 这个类型的 ,赋值给别的会报错,所以使用 const 来类型推断的时候

1
2
3
4
5
6
const ab = true
// 这个时候 ab 就是 true 这个字面量类型的,不能赋值给别的
// 但是如果我们用 let 的话,
let abc = true
// 这个时候 abc 就变成了 boolean 类型了
// typescript 真的是非常智能 ?


1 回复 有任何疑惑可以回复我~
  • ywang04 #1
    谢谢老师回复。所以 result2 推断为[number, string] 而不是[123,'string'] 是因为result2推断类型应该是tuple 而tuple 不属于原始数据类型 对吗?
    回复 有任何疑惑可以回复我~ 2021-01-04 10:07:52
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号