typeScript基础(2)_any任意值类型和类型推论

any任意值类型

可以赋值其他任意类型:
ts:

// 任意值 ==》任意类型
let myName :any = 'zjq';
myName=123;
myName=false;
myName=()=>'我是函数返回值';

js: 箭头函数也变成了es5的形式:

// 任意值 ==》任意类型
var myName = 'zjq';
myName = 123;
myName = false;
myName = function () { return '我是函数返回值'; };

不写类型也会默认给任意类型,也同样可以转成js

let myName ;
myName = 123;
myName = false;
myName = () => '我是函数返回值';

然而有个问题,当我们使用这样的时候就会报错:

// 任意值 ==》任意类型
let myName ='qwe';
myName = 123;
myName = false;
myName = () => '我是函数返回值';

这源于类型推论。

类型推论

如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。

这是因为上面的

// 任意值 ==》任意类型
let myName ='qwe';
myName = 123;
myName = false;
myName = () => '我是函数返回值';

类型推论等价于

// 任意值 ==》任意类型
let myName :string ='qwe';
myName = 123;
myName = false;
myName = () => '我是函数返回值';

后面的赋值不是string了,所以会报错;但是我们:

let myName ;
myName = 123;
myName = false;
myName = () => '我是函数返回值';

如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查

这样就不会报错:因为在ts中类型推论给给一个any任意值类型;类型推论等价于

let myName:any ;
myName = 123;
myName = false;
myName = () => '我是函数返回值';

参考:https://www.bookstack.cn/read/typescript-tutorial-202005/basics-type-inference.md

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六卿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值