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

最新文章

  1. 一个国家专利查询demo
  2. understand dojo/domReady!
  3. web服务器和ftp服务器有什么区别
  4. 实验室ip同步脚步
  5. free命令查看内存使用情况(转载)
  6. sql语句中like匹配的用法详解
  7. Swift 2.0基本语法
  8. Java RMI之介绍
  9. js函数与变量同名
  10. 高效算法——D 贪心,区间覆盖问题
  11. IOS数据库操作SQLite3使用详解(转)
  12. slf4j与logback对接是如何将日志写到控制台的
  13. Xmanager连接到RedHat Enterprise Linux 6.8
  14. servlet(2)servlet过滤器
  15. maven 项目提示找不到javax.servlet.xxx问题解决
  16. 《深度探索C++对象模型》读书笔记(一)
  17. Linux下Oracle开机启动
  18. Python爬虫的步骤和工具
  19. 【转】Intellij IDEA调试功能
  20. 【Java】【控制流程】

热门文章

  1. i春秋破译
  2. ArcObjects SDK开发 006 ICommand和ITool接口
  3. Springboot 2.3.1配置拦截器遇到的坑
  4. 《不一般的 DFT》阅读随笔
  5. CentOS Linux 的安装
  6. On Java 8读书笔记
  7. ModuleNotFoundError: No module named 'MySQLdb'
  8. mybatis 之定义拦截器 控制台SQL的打印
  9. [OpenCV实战]26 基于OpenCV实现选择性搜索算法
  10. PostgreSQL(02): PostgreSQL常用命令