首页 > 其他分享 >typeScript学习-TS类型-其他特殊类型-any、unknown

typeScript学习-TS类型-其他特殊类型-any、unknown

时间:2023-08-11 10:15:07浏览次数:42  
标签:typeScript 变量 unknown TS num let 类型 any

typeScript学习

其他特殊类型:

any, unknown, never, void, 元组(tuple), 可变元组
 

any 比较经典的应用场景:

  1、自定义守卫 

  2、需要进行 as any 类型断言的场景

unknown 一般用作函数参数:

  用来接收任意类型的变量实参,但在函数内部只用于再次传递或输出结果,不获取属性的场景。

any, unknown 区别:

相同点:

  any 和 unknown 可以是任何类的父类,所以任何类型的变量都可以赋值给 any 类型 或 unknown 类型的变量。

let num:number = 3
let data:any = num
let data2:unknown = num
不同点:

  1、any 也可以是任何类的子类, 但 unknown 不可以, 所以 any 类型的变量都可以赋值给其他类型的变量。

let data3:any = ['a','b']
let data4:unknown = ['c','d']
let arr:Array = data3
let arr2:Array = data4 // 报错
console.log(arr) // ['a','b'] 

  2、不能拿 unknown 类型的变量来获取任何属性和方法,但 any 类型的变量可以获取任意名称的属性和任意名称的方法。

console.log(data.toFixed(2)) // 3.00
console.log(data2.toFixed(2)) // 报错

 

标签:typeScript,变量,unknown,TS,num,let,类型,any
From: https://www.cnblogs.com/kongbaige/p/17622282.html

相关文章

  • typeScript学习-TS类型-其他特殊类型-never
    typeScript学习其他特殊类型:any,unknown,never,void,元组(tuple),可变元组never://dataFlowAnalysisWithNever方法穷尽了DataFlow的所有可能类型。//使用never避免出现未来扩展新的类没有对应类型的实现,目的就是写出类型绝对安全的代码。typeDataFlow=stri......
  • typeScript学习-TS类型-合成类型
    typeScript学习合成类型:联合类型,交叉类型联合类型:letstr:srting|number="abc"str=3交叉类型:typeObj1={username:string}typeObj2={age:number}letobj:Obj1={username:'zhangsan'}letobj2:Obj2={age:23}letobj3:Obj1&Obj2={username:&#......
  • typeScript学习-TS类型-字面量数据类型
    typeScript学习字面量数据类型://typeA=number|string//leta:A="abc"//typenum=number//letn:num=3typenum=1|2|3letn:num=2//错误情况//letn:num=4typeincreaseFlag=0|1functionisStartUp(increase:increaseFlag){if(in......
  • typeScript学习-TS类型-枚举
    typeScript学习枚举:enum枚举的定义:用来存放一组固定的常量的序列。枚举带来的好处:1、有默认值和可以自增值,节省编码时间2、语义更清晰,可读性增强,因为枚举是一种值类型的数据类型,方法参数可以明确参数类型为枚举类型enumWeekEnd{Monday="myMonday",//......
  • typeScript学习-TS类型-接口
    typeScript学习接口:定义:另一种定义对象类型的类型接口应用场景:1、一些第三方包或者框架底层源码中有大量的接口类型2、提供方法的对象类型的参数时使用3、为多个同类别的类提供统一的方法和属性声明如何定义接口:继承接口:新的接口只是在原来接口集成之上增加......
  • BootstrapBlazor组件库,组件方法的表达式传参
    BootstrapBlazor组件库,组件方法的表达式传参有时候我们在循环中创建组件的时候,可能想把item的值也一并传入组件的方法事件中去处理,有很多小伙伴就不知道如何去调用事件了。下面是一段实例代码,通过循环遍历来创建图片,并且创建一个删除图片的按钮,这个按钮的OnConfirm方法需要把图......
  • ECharts实现两条曲线数据比较,数据高出区域高亮显示
    显示效果: 代码实现:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>EChar......
  • 解决mysqladmin flush-hosts
    1、提高允许的max_connect_errors数量(治标不治本)a.命令行修改 修改max_connection_errors的数量为1000 mysql-h123.57.78.101-P3306-uroot-p123456 setglobalmax_connect_errors=1000; showvariableslike‘%max_connect_errors%’;b.配置文件修改 登陆进入M......
  • ubuntu putty ntsysv 图形化命令界面 错位 乱码
    有待验证 ntsysv zhcon是工作在Linux控制台下的高效双字节中/日/韩(CJK)虚拟终端,就像DOS环境中的UCDOS一样,为控制台(console)环境提供完整的双字节语言环境。 apt-getinstallzhcon#adduser$(whoami)video#添加当前用户到video中zhcon--utf8#运行zhcon(注意:输入的是......
  • vscode中使用echarts(横向柱形图)
    第一步:引入echartsimport*asechartsfrom"echarts";第二步:准备一个放入echarts的盒子<template><div><divclass="bar"></div></div></template>第三步:绘制图表drawBar(){letmyChart=echarts.init(d......