ts中any和unknown的区别

  • 赋值时的表现
  1. 任意类型可以给any赋值,any也可以给任意类型赋值
let p1:any = 40
let p2:any = 'hellow'
// ...

let p:any = 40

let num:number = p
let str:string = p
let obj:object = p
  1. 任意类型可以给unknown赋值,但unknown只能给unknown或any赋值,unknown是TS3.0新增的类型
let p1:unknown = 40
let p2:unknown = 'hellow'
// ...

let p:unknown = 40

let x:unknown = p     //ok
let y:any = p         //ok

let num:number = p  // Type 'unknown' is not assignable to type 'number'
let str:string = p  // Type 'unknown' is not assignable to type 'string'
  • 安全性方面比较

unkuown是更加安全的any类型,一般要配合类型收载或类型断言才能对其操作,否则在编译阶段就会报错

let p:unkunwn = 40

p.toFixed(2)  //error
p.length  //error
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我想为外科医生说点什么。题目怎么拟我都没想好。这几天一种必须要说的情绪一直萦绕在我的心里。我想说的,居然无法命题。...
    石蕙娴阅读 760评论 0 0
  • 看来看去【2723】 056.2023年2月25日星期六 在知乎答题——太简单了。人家预订的【桌子】没坐满,怎么办...
    秋高气爽_10b3阅读 903评论 0 0
  • 投射我儿读书明理,修身做人,每天阳光快乐,情绪平和稳定,越来越会调节自己的情绪和压力。 投射我儿对家人、他人、社会...
    花开生两面阅读 606评论 0 0
  • 【解析】《证券投资基金法》第5条:基金财产的财务由基金财产本身承担,基金份额持有人以其出资为限对基金财产的债务承担...
    双髻山府正堂阅读 1,046评论 0 5
  • 我这回主要要只讲讲我和小张 @小张爱读书 这就是他在简书的号。还是我介绍他来简书社区。我们在同一个班级里。一一五年...
    空间跳转阅读 1,703评论 6 2