首页 > 其他分享 >【TS】any和void

【TS】any和void

时间:2023-01-29 21:12:59浏览次数:50  
标签:console void TS 报错 str let any

any类型

any类型,在ts中是一个万能类型,它可以替代所有类型,也就是说定义了any类型,就不用担心ts的类型束缚,但如果所有的类型都使用any那么ts就失去了它的作用,我们使用ts就是为了规范类型,any的主要使用场景是当一个值不确定的时候使用,此外要避免滥用any类型。
语法:let 变量名 : any = 值

let str : any = 100
console.log(str);  // 输出 100

str = '东方不败'
console.log(str);  // 输出 东方不败

any在数组中的运用:
在使用数组的时候,数组内通常会存储很多值,这些值都不是固定的,有些值还不能确定其类型,而且数组内的个数也不确定,此时可以使用any定义数组。

let arr : any[] = [100,'孙悟空',true]
console.log(arr);   // 输出 [100,'孙悟空',true]

any的注意事项
可以用一些方法对值进行操作,比如字符串拆分方法,将字符串拆分成数组

console.log(arr[1].split(''));  
// 字符串拆分  输出 :  ['孙', '悟', '空']

如果是数组类型的值,字符串方法肯定是拆分不了的,由于使用了any类型,ts不会有错误提示,直接在输出的时候报错,也就是我们说是的浏览器控制台报错

console.log(arr[0].split(''));  // arr[0] 的值为 100
// 报错,数字拆分不了,any的弊端,这种情况下没有错误提示

在这里插入图片描述
any有优点,也有缺点,需要合理使用any,避免滥用any


void类型

在函数声明的时候,小括号后面使用void ,代表该函数没有任何的返回值
语法: function 函数名() : void { }

// 正常声明函数 return 
function msg(){
    let str = '艺术概论'
   return str
}
console.log(msg());  // 输出 艺术概论

使用void直接报错提示,void没有返回值

function msg2():void{
    let str = '世界现代设计史'
   return str  // 此处直接报错提示
}
console.log(msg2());  

正确使用void

function msg2():void{
    let str = '世界现代设计史'
   console.log(str)
}
msg2();   // 输出 世界现代设计史

void有空白、无效的意思,也就是说void没有任何类型,所以给 void赋值时会报错,void的赋值只有undefined是正确的。

let vd : void = 1    // 报错
let vd2 : void = '东方不败' // 报错
let vd3 : void = true // 报错
let vd5 : void = null // 报错
let vd4 : void = undefined // 正确

案例源码:https://gitee.com/wang_fan_w/ts-seminar

如果觉得这篇文章对你有帮助,欢迎点亮star

标签:console,void,TS,报错,str,let,any
From: https://www.cnblogs.com/wang-fan-w/p/17073823.html

相关文章

  • 【TS】object类型
    object是一个对象,在ts中定义对象类型的语法为:let变量名:object={}在object类型中,对象内部定义的值是不受类型约束的,只要是一个object类型即可,例如:letobj:object=......
  • 【TS】联合类型--类型断言--类型推断
    联合类型在实际开发中,我们接收的变量可能不是一个固定的数据类型,而是动态的多个数据类型,此时用单个固定的数据类型去接收很明显是不行的,为了解决这种可能会接收多个不同数......
  • 【TS】函数和函数类型
    在使用函数的时候,通常会给函数传值,或者给函数一个返回值调用,这个时候就会涉及到函数类型。函数类型分为两个方面:1、函数参数2、函数返回值语法:function函数名(参数......
  • 【TS】class类和接口
    class可以用来做数据的存储与回显,能将页面的数据分离出来并提取到class内,函数也可以抽离到class,实例化class进行调用。ts中的class类与js的class类基本相同,不同点在于ts的c......
  • 【TS】接口和接口继承
    接口接口也相当于语法规范,在使用ts编写的时候,需要注重的就是数据类型以及语法规范,恰好这里提供了一个接口,在进行传值的时候,传值的类型以及字段必须符合我们预期的类型规范......
  • 【TS】基础类型
    在ts中定义基础类型,语法:let变量名:数据类型=值//布尔类型----booleanletflag:boolean=trueflag=false在赋值的时候,不能赋值定义外的数据......
  • 【TS】数组和元组
    数组在ts中,定义数组类型语法:let变量名:数据类型[]=[值1,值2,值3]letarr1:number[]=[1,2,3,4]console.log(arr1);//输出[1,2,3,4]此外数字类型的定义还可......
  • 炉石传说 酒馆战棋 积分保护机制Developer Insights: Hearthstone Battlegrounds Rati
    https://hearthstone.blizzard.com/en-us/news/23523064BlizzardEntertainment09/28/2020 Greetings!I’mTian,aLeadDataScientistontheHearthstoneteam......
  • CF103E Buying Sets
    这个世界上怎么有这么巧妙的建模啊。。首先,题目保证了任意\(k\)个子集并的大小\(\gek\)。这说明我们选的数字的数量永远大于等于集合数量如果不考虑数字数量等于集......
  • DestoryJavaVM停止HotSpotVM的步骤
    1、一直等待,直到只有一个非守护的线程执行,注意此时HotSpotVM仍然可用;2、调用java.lang.Shutdown.shutdown()方法,它会调用Java上的shutdown钩子方法,如果finalization-on-exi......