数据类型
布尔类型 (boolean)
数字类型 (number)
字符串类型 (string)
数组类型 (array)
元组类型 (tuple) // 属于数组的一种,可以声明一个数组里面既可以有数组,也可以是字符串或别的数据类型
枚举类型 (enum)
任意类型 (any)
null 和 undefined
void类型 //ts中void表示没有任何类型,一般用于定义方法的时候方法没有返回值
never类型 // 是其他类型(包括 null 和undefined )的子类型,代表从来不会出现的值,这意味着never的变量只能被never类型赋值,比如 var a : undefined ; a就只能被赋值undefined
定义数据类型
var num:number = 5
// 一个变量有可能是number类型,可能是null, 可能是undefined
var str : number | null | undefined
str = null //不会报错
定义数组
//第一种
var arr:number[] = [11,22,33] // 这样声明表示数组里面的每个值都必须是数字类型
// 第二种
var arr:Array<number> = [11,22,33]
// 第三种 any 这样表示数组里面每个值都是任意类型
var arr :any[ ] = ["字符串",222,true]
定义元组类型
let arr:[number,string] = [123,'字符串']
定义枚举类型
常用来表示一个事物的状态, 比如:成功或者失败
enum 枚举名 {
标识符 [ =整形常数 ],
标识符 [ =整形常数 ],
标识符 [ =整形常数 ],
···
标识符 [ =整形常数 ],
}
// 示例一
enum zt { success = 1 , error = 3 }
let num : zt = zt.error
console.log(num) // 打印出3
// 示例二
enum color{ red , bule , 'orange'}
let num : color = color.bule
let str : color = color.orange
console.log(num) // 打印1
console.log(str) // 打印2
// 如果标识符没有赋值,他的值就是下标
any 任意类型
var a : any = "字符串"
var a : any = 2
// 获取dom元素的的时候可以使用 any 任意类型
void
function run():void{ //表示该方法没有返回任何类型
}
function run():number{ //表示该方法返回数字类型
return 123;
}
函数返回值及传参
function getlist( name:string , age:number ):string{
return "字符串"
}
getlist("姓名",18)
// 在形参后面加问号表示可传可不传
// 例 :
function getlist( name:string , age?:number ):string{
if(age){
return name + "--" + age
}else{
return name + ""
}
}
getlist("姓名",18)
//默认参数
function getlist( name:string , age:number = 20 ):string{
return name + "---" + age
}
getlist("姓名",18) //返回 "姓名---18"
getlist("姓名") //返回 "姓名---20"
// 剩余参数
function sum(...result:number[]):number{
var num = 0
for(let i = 0; i< result.length; i++){
num += result[i]
}
return num
}
sun(1,2,3,4) // 返回10
类属性的修饰符
55${GMRLV8C_7D}6ZSVBP2L.png类.png
类静态属性
static 表示声明静态属性或方法
静态方法里不可以访问类里面的属性,静态方法里只可以访问用static声明的静态属性
类静态属性.png
抽象类
abstract 表示子类必须实现带abstract的方法
抽象类.png
接口
接口.png- 属性接口 对json的约束
function fun(obj:{name:string}):void{
}
// 表示必须传入一个对象,对象里必须要有Stright类型的name这个属性
//批量约束形参
// interface 声明批量约束
interface fullname{
a:string;
b:string;
}
function fun1(obj:fullname):void{}
function fun2(obj:fullname):void{}
//表示fun1和fun2必须传入一个属性里只有string类型的a和b属性的对象
interface fullname{
a?:string; //在a后面加个?表示a可传可不传
b:string;
}
网友评论