学习链接 24kcs.github.io/vue3_study/
ts 语法
基础类型使用(null和undefined 能赋值给其他变量 :let str:string = null)
let str:string = '11111'
let str:bumber = 1111
let str:boolean = true
let str:undefined = undefined
let str:null = null
数组定义
let arr:number[] = [1,2,3]
let arr2:Array = [1,2,3]
当数组元素类型不一致时,元组类型(赋值时元组的类型和个数得和定义时候一样)
let arr3:[string,numer,boolean] = ['ee',21.true}
数组个数,类型不确定时
let arr4:any[] = [1,null,true]
枚举定义
enum Color={red= '1',yellow= '10'}
let color:Color = Color.red
any类型
let a:any =1
a= true //使用any类型可随意切换赋值类型
void类型,在函数声明时使用,代表函数没有返回值
function add():void{}
function add():类型{} //代表函数返回值必须是,定义的类型
object类型
let obj:object = {a:2}
联合类型 (可以定义一个变量为多种数据类型)
let numAnStr:string|bumer = 11 //可以等于111或'str'
类型断言; 当变量为指定类型时,可以进行指定操作;编译器给你判断了类型(可以根据变量的类型直接做操 作)
写法1: numAnStr 写法2:numAnStr as number
let numAnStr:string|bumer = 11
let calc = numAnStr+1
let calcStr = (numAnStr)+'我是结果'
接口 interface (一种类型,一种规范,一种约束)
//需求创建人的对象,需要对人的属性进行规范
//id number 类型 必须要有 只读
//name string 类型 必须要有
//age number 类型 必须要有
//sex string 类型 可以没有
定义个接口规范这个对象,实现需求
interface ckPerson{
readonly id:number, //readonly只读
name:string,
age: number,
sex?: string, //?=可有可无
}
使用 let person = {id:1,name:'tt',age:18} //person.id = 2 报错,设置只读了
函数类型(把接口当作函数类型来定义)
interface IFunc{
(age:number,name:string):string
}
const person:IFunc=function(age:number,name:string):string{
retrun age+name
}
调用 person(18,'tom')
类类型
定义个类接口,约束类;
interface IFly{
fly()
}
interface ISwim{
swim()
}
使用类接口时,必须实现类里面定义的方法(不定义fly会报错);可以用多个类接口如:IFly后逗号接第二个类接口(IFLy,ISwim)
class Person implements IFly(){
fly(){
alert('我要飞·······')
}
}
let p= new Person() //p,fly() 弹出弹窗:我要飞·····
可以定义一个接口,继承这几个类接口(接口继承extends,接口实现implements)
interface flyAnswim extends IFly,ISwim{}
clsss superman implements flyAnswim(){
fly(){
alert('我要飞·······')
}
swim(){
alert('我要游·······')
}
}
let man =new superman() //fly 和swim都可以调用