欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

typescript

程序员文章站 2022-06-23 23:09:29
* Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 * * TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持,它由 Microsoft 开发,代码开源于 GitHub 上。 它的第一个版本发布于 20 ......
 
* flutter是谷歌的移动ui框架,可以快速在ios和android上构建高质量的原生用户界面。
*
* typescript 是 javascript 的一个超集,主要提供了类型系统和对 es6 的支持,它由 microsoft 开发,代码开源于 github 上。
它的第一个版本发布于 2012 年 10 月,经历了多次更新后,现在已成为前端社区中不可忽视的力量,
* 不仅在 microsoft 内部得到广泛运用,而且 google 的 angular2 也使用了 typescript 作为开发语言。
* 并且我们熟知的vue,在3.0也即将会使用typescript
*
* javascript是解释型(动态)语言,可以说是从上到下执行,在我们开发过程中,比如有语法错误等等,
* 需要执行到这一行代码才能知道,而typescript则像写易语言那样生成exe时,需要静态编译,而静态编译这个过程,
* 会把代码都检查一遍,看是否通过检测,最终才生成exe,typescript最终是也是编译成javascript原生代码的,
* 只是在这个生成过程中,会进行各种检测,来检查代码是否符合语法啊规则啊,符合的话最终再编译成javascript,
* 规范了我们代码的编写,同时也提高了代码的复用以及组件化

*
* typescript支持es5/es6的语法,并且扩展了javascript语法,更像java、c#、这种语言了
*
* java、c#这类语言,
* 非常严谨,类型检查等非常严谨,而javascript呢,
* 一般是靠我们用肉眼去排查,很麻烦,typescript就是解决这一类问题的。
*
*
* 一.typescript 安装
* yarn global add typescript
* 全局安装完成后,我们新建一个hello.ts的ts文件
* 命令行输入tsc hello.ts来编译这个ts文件,然后会在同级目录生成一个编译好了的hello.js文件
*
*
* 二、数据类型
* java、c#是强类型语言,而js是弱类型语言,强弱类语言有什么区别呢?
* typescript最大的优点就是类型检查,可以帮你检查你定义的类型和赋值的类型。
*
* 在ts中,定义isflag为true,为布尔类型boolean
在变量名后加冒号和类型,如 :boolean
* let isflag:boolean = true
重新赋值到字符串类型会报错
isflag = "hello swr"
* 定义基本类型都是这样定义 数字类型number 字符串类型string null undefined类型
*
* 但是定义数组的时候有所不同
*
* let pets:string[] = ["旺财","小黑"]; 只能往里面写字符串,写别的类型会报错 let pets:array<string> = ["旺财","小黑"];
* let arr:array<string|number|boolean> = ["hello swr",28]; let arr:array<any> = ["hello swr",28,true]
*
*
* 什么是元组类型?其实元组是数组的一种。
*
* let person:[string,number] = ['邵威儒',28]
* 有点类似解构赋值,但是又不完全是解构赋值,比如元组类型必须一一对应上,多了少了或者类型不对都会报错。
*
* 枚举类型enum
* 我们可以定义一些值,定义完了后可以直接拿来用了,用的时候也不会赋错值。
* 比如我们实际项目中,特别是商城类,订单会存在很多状态流转,那么非常适合用枚举
*
* enum orderstatus {
wait_for_pay = "待支付",
undelivered = "完成支付,待发货",
delivered = "已发货",
completed = "已确认收货"
}
* 如果我们直接写对象的键值对方式,是可以在外部修改这个值的,而我们通过enum则不能修改定义好的值了,更加严谨
*
*
* 任意类型 any
*
* any有好处也有坏处,特别是前端,很多时候写类型的时候,几乎分不清楚类型,任意去写,写起来很爽,
* 但是对于后续的重构、迭代等是非常不友好的,会暴露出很多问题,某种程度来说,any类型就是放弃了类型检查了。。。
*
* void是不能有任何值
* function say():void {

}
never永远不会有返回值
*
* function loop():never {
while(true){
console.log("陷入死循环")
}
}

loop()
*
*