为什么typescript设定类型的变量通过函数能赋值成其他类型的值


let s:string = 'a';
let n:number = 0;
let o:object = {};
let b:boolean = true;

function set(arg:any):void{
    s = arg;
    n = arg;
    o = arg;
    b = arg;
}

set('abc');

console.log(s,n,o,b); // abc abc abc abc

已经设定好的类型,怎么通过函数里面可以赋值呢,在外面再复制其他类型的还是报错的

阅读 2.4k
2 个回答

你这就等于

let a :number = 0
a = '123' as any

any 类型的值能被任何类型所兼容,所以能给赋值给任何类型的变量。

???

你不 any 了么?你都已经主动告诉 TS 放弃编译时类型检查了,却又问为啥能成功赋值?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题