数据类型
- 基本数据类型:boolean, number, string
- 数组: 2种写法,结果一样
1)let 数组名:数据类型[] = [值1,值2,…]
2)let 数组名:Array<数据类型> = [值1,值2,…] - any:可以匹配任何数据类型
- 函数:
1)既没有参数,有没有返回值的函数,与普通js写法一样
2)如果函数有返回值:
function 函数名():返回值的类型{
…
return 返回值;
}
3)如果函数有参数;
function 函数名(形参1:数据类型,形参2:数据类型,…){
…
}
强调:ts中严格规定,一个函数定义了几个形参,就必须传几个实参,数据类型也要对应
4)既有形参又有返回值
function 函数名(形参1:数据类型,形参2:数据类型,…):数据类型{
return 返回值;
}
5)可选值和默认值
可选值: ?表示参数可以没有。将来如果没有传入这个参数值,则参数值默认为undefined
默认值:形参:数据类型 = 值
function 函数名(形参1:数据类型 = 值,形参2?:数据类型):数据类型{
return 返回值;
}
6)参数值个数不确定
function 函数名(固定形参:数据类型,…数组名:数据类型[]):数据类型{
return 返回值;
}
7)重载
void:表示没有return
function pay():void;
function pay(money:number):void;
function pay(x?:any){
if(x==undefined){
console.log(“手机支付”)
}else{
console.log(“现金支付”)
}
}
接口
-
定义接口
interface 接口名{
属性名:类型;
方法:()=>void;
} -
使用接口
class 类型名 implements 接口名{
}
TS列子
基本数据
let num:number = 123;
let bool:boolean = true;
let str:string = “abc”;
数组
let arr:string[] = [‘a’, ‘b’, ‘c’ ];
let arr:Array= [‘a’, ‘b’, ‘c’ ];
函数
function fun1():number{
return 123;
}
function fun2(name:string, age: number){
…
}
function fun3(a:number, b:number):number{
return a+b;
}
function fun4(a:number = 1, b?:number):number{
return a+b;
}
function fun5(…arr:number[]):number{
return 1;
}
fun5(1,2,3,4,5)
class
class student(){
*访问控制修饰符*
protected money:number=2000 // 受保护,表示只有父子类型范围内才可以使用
private money:number=2000 // 私有,表示仅class内可用,子类型和外部都不能用
public money:number=2000 // 公开 (默认),表示子类型和外部都可以访问到
// class中要想包含一些属性
// 必须在构造函数外定义属性
name:string = ""
age:number = 0
constructor(name:string, age:number){
this.name=name;
this.age=age
}
}
接口
-
定义接口
interface isStudent{
name:string;
age:number;
into:()=>void;
} -
使用接口
class Strudent implements isStudent{
name:string=“”;
age:number=0;
constructor(name:string, age:number){
this.name=name;
this.age=age
}
into(){
}
}