ts
ts编译需要下载(npm i typescript -g),之后可以使用tsc --watch来全局监视ts文件或 tsc ? --watch指定监视某文件,tsc ?可以转换指定ts文件
ts中的数据类型有:any,unknown,never,string,number,undefined,enum,tuple,两个用于自定义类型的方法type,interface
any类型可以赋值给任意变量,
never主要是ts自动推断,string是String自动装箱后的,与number、Number同理,Array只有大写形式,没有返回值的函数默认返回一个undefined,
对于定义void的函数
type GetSum = () => void
const getSum:GetSum = () => {
return 5
}
并不会报错,但
function getSum2():void{
return 5
}会报错
原因在于ts不会对void进行一个严格的限制,为了让
const src = [1,2,3]
const data = [0]
src.forEach((item)=>data.push(item))
成立(forEach的返回值是void,但push函数会得到一个操作后数组的长度,箭头函数写在同一行省掉return后,如果严格限制,则报错)
enum主要用于枚举
enum Director{
Up,
Down,
Right,
Left
}限定某个量的取值(首字母一般大写)减少出错率,!!!enum前加const可以按需编译对应ts,减少压力
tuple是一种定义规则
let dog : [string,number]
dog =['sd',12]
限制取值,定义必须用let,const需要初始化,
let perman : [string,...number[]]
表示第一个值为字符串,后续值为任意数量(0也行)的number数组
interface可以继承,自动合并,扩展,和type很多情况可以转化,但interface主要针对于类和对象,而type是定义一种一种数据类型
一个类可以使用多个接口(用,间隔),但只能继承一个抽象类
接口只能规定方法结构,不能具体实现,抽象类可以规定方法结构和具体实现
浙公网安备 33010602011771号