当前位置: 首页 > article >正文

学习TypeScrip2(任意类型any和unknown)

Any 类型 和 unknown 顶级类型


1.没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型

let anys:any = 123
anys = '123'
anys = true


2.声明变量的时候没有指定任意类型默认为any

let anys;
anys = '123'
anys = true


3.弊端如果使用any 就失去了TS类型检测的作用

4.TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,所有类型都可以分配给unknown

unknow  unknow类型比any更加严格当你要使用any 的时候可以尝试使用unknow

any和unknown的区别1

unknown 可以定义任何类型的值

unknown类型不能作为子类型只能作为父类型而any可以作为父类型和子类型

unknown类型不能赋值给其他类型

any类型可以赋值给其他类型

unknown可赋值对象只有unknown 和 any

//unknown 可以定义任何类型的值
let value: unknown;
 
value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK
value = [];               // OK
value = {};               // OK
value = null;             // OK
value = undefined;        // OK
value = Symbol("type");   // OK
 
//这样写会报错unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names:unknown = '123'
let names2:string = names
 
//这样就没问题 any类型是可以的
let names:any = '123'
let names2:string = names   
 
//unknown可赋值对象只有unknown 和 any
let bbb:unknown = '123'
let aaa:any= '456'
 
aaa = bbb


any和unknown的区别2

如果是any类型在对象没有这个属性的时候还在获取是不会报错的
如果是unknow 是不能调用属性和方法

如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any = {b:1}
obj.a
 
 
如果是unknow 是不能调用属性和方法
let obj:unknown = {b:1,ccc:():number=>213}
obj.b
obj.ccc()

http://www.kler.cn/a/160208.html

相关文章:

  • C/C++语言基础--C++模板与元编程系列六,C++元编程相关库的讲解与使用
  • 【项目组件】第三方库——websocketpp
  • Spring Cloud Gateway(分发请求)
  • IC 脚本之python
  • 淘宝代购系统;海外代购系统;代购程序,代购系统源码PHP前端源码
  • 若依笔记(八):芋道的Docker容器化部署
  • 前端使用 xlsx.js 工具读取 excel 遇到时间日期少 43 秒的解决办法
  • 【SQL思考记录】力扣181. 超过经理收入的员工
  • inBuilder低代码平台新特性推荐-第十三期
  • Python项目部署利器:轻松上手Git和GitHub
  • No matching version found for @babel/compat-data@^7.23.5 处理
  • 绘制纹理C++
  • Windows 安装 flash-attention 和 bitsandbytes
  • 根文件系统初步测试
  • YOLOv8改进 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)
  • 如何解决syntaxerror: more than 255 arguments 报错
  • HG/T 5367.2-2022 轨道交通车辆耐电弧绝缘涂料检测
  • 论文笔记--A Fine-grained Interpretability Evaluation Benchmark for Neural NLP
  • Redis--13--缓存一致性问题
  • ES 模块语法改为 CommonJS 模块语法的区别
  • RK3288升级WebView版本,替换webview app
  • mv视频怎么做成二维码?扫码用流量看视频更方便
  • 1.2 C语言简介
  • 微服务知识大杂烩
  • uniapp 使用web-view外接三方
  • LeetCode 每日一题 Day 4