简介:
nvm安装必须先把自己的node卸了,再去安装nvm
TS就是js的超集
对js进行了扩展
浏览器不支持ts,要转换为js才可以。
ts是用来编程人员爽的
js的写法拿到ts也可以,ts代码量更大,但ts代码更加清晰
可以在playground上在线编写,只是学一学,不想本地搞。
本地搭建环境,vscode,安装插件Code Runner,这个插件可以运行很多语言,还要安装ts-node。
要预先准备好node环境,这个还是简单
ts声明变量
定义变量的关键字 变量名称 :变量的数据类型 = 变量值
比如
let b:number =100
声明常量
let用于声明变量,const用于声明常量
const b:number =100
类型的推断
ts支持类型自动推断,就是可以不用谢变量的数据类型
直接 let c = 69
常用数据类型
num 数字,正数,小数都是它
string
boolean
数组:元素类型[]
let arr:String[] =["123","321"];
对象,object
这是js的
let person={
name:“zs”,
age:23,
set:false
}
这是ts的,感觉比js麻烦,严格要求。
let person:{name:string,age:number}={
name:'zs',
age:23
}
函数也是,变得更加复杂了
同样也是要注明类型学
参数要描述,返回值也要描述
function sum(a:number,b:number):number(){
return a-b;
}
不但要描述参数,还要注明返回值类型,感觉挺麻烦的
:${name}
:${age}
相当于绑定数据?
特殊语法
可选参数,在形式参数后面添加?号
可以在参数中加上=号,默认传参,添加默认值
联合类型:同时支持多种类型 (message:number|string),数字和字符串都可以,使用竖线把多个类型隔开。
任意类型:方法函数不做限制,使用关键字any
特殊类型:返回为空,void,妈呀,这应该知道吧。
类型推断:函数返回值类型可以根据函数内容推断出来
匿名函数,适用于一次性使用,结构简单,没有名字?类似于lamda表达式写法
可以使用lamda表达式简化
箭头函数省略
类
又开始面向对象的学习
面向对象简称oop,介绍都是懂得噻
语法
居然有构造器,里面也可以有普通方法
和java没多大区别,构造器有点不一样,它的构造方法就叫做construct
对象创建
和java差不多,new个对象
访问就是类 .(点)方法
对于学过java的嗯来说,完全没什么难度了
属性的访问,点属性名就可以了。
居然还有静态成员和java差不多了
加上static,这个和java一样,类名点
继承,extend那不是和java一样吗,supper调用父类,this关键字访问继承自父类的属性和方法。
子类构造要子类调用父类的构造方法,supper是不能访问属性,用this访问,父类赋予子类的变量?
访问权限修饰符
private,public,protected
接口(interfere)
一种规范让类去遵守
接口实现
ts接口的特殊性
接口非常灵活,也常用于直接描述对象。
枚举
上下左右,春夏秋冬,看待成为其中一个对象。还是和java差不多
泛型
无法确定具体要使用的具体类型,此时泛型能够发挥作用
还有几种,太无聊了,走神了,TS太像java了,很难集中注意力,没有新意
模块化
就导入导出那些,其实不是很陌生。名字冲突,as一下
默认导入导出,一个文件最多有一个默认导出项,类似于vue那个default export,可以无需关注导入项的名称。
支持导出匿名内容,比如匿名函数,比如vue那个,导出个对象?内容要求不是特别严格。