数据类型
数字类型(Number)
var num:number = 10;
字符串类型(String)
var str:string = '10'
数组类型(array)
var arr:number[]=[1,2,3];
var brr:Array<number> = [4,5,6]
元组类型(tuple)
var crr:[number,string] = [1,'4']
枚举类型(enum)
enum Flag{success=1,error=0}
let s:number = Flag.success;
console.log(s)
任意类型(any)
let p:any = 10;
p = '10'
null和undefined
var u:undefined | number;
u = 10;
var n:null = null;
viod类型
函数没有返回值
function box():void{
console.log("this is void")
}
box(); //this is void
never类型
// 其他类型(包括null和undefined)的子类,表示从未出现的值
var e:never;
e = (()=>{
throw new Error("错误");
})()
函数
1.有返回值
// function fn():string{
// return '5';
// }
// alert(fn());
2.无返回值
// function fn():void{
// alert(5)
// }
// fn();
3.定义方法传参(无返回值)
// function fn(name:string,age:number):void{
// console.log(name,age)
// }
// fn("张三",23)
4.定义方法传参(有返回值)
// function fn(name:string,age:number):string{
// return name;
// }
// alert(fn("张三",23))
5.函数的可选参数(可选参数必须配置到参数后面)
// function fn(name:string,age?:number):any{
// if(age){
// return age;
// }else{
// return name;
// }
// }
// alert(fn("张三"))
6.函数的默认参数(es5无法配置默认参数)
// function fn(name:string,age:number=30):any{
// if(age){
// return age;
// }else{
// return name;
// }
// }
// alert(fn("张三",26))
7.函数的剩余参数
// function sum(a:number,b:number,c:number,d:number):number{
// return a+b+c+d;
// }
// alert(sum(5,5,5,5))
// 三点运算符
// function sum(...result:number[]):number{
// var sum:number = 0;
// for(var i = 0;i<result.length;i++){
// sum+=result[i]
// }
// return sum;
// }
// alert(sum(5,5,6,6))
// 另一种写法
// function sum(a:number,...result:number[]):number{
// var sum:number = a;
// for(var i = 0;i<result.length;i++){
// sum+=result[i]
// }
// return sum;
// }
// alert(sum(5,5,6,6))
8.方法的重载(同一个方法,传入不同的参数,实现的功能不一样)
// function getInfo(name:string):string;
// function getInfo(age:number):string;
// function getInfo(str:any):any{
// if(typeof str === "string"){
// return str;
// }else{
// return str;
// }
// }
// alert(getInfo("张三"))
// alert(getInfo(26))
9.箭头函数(es6,this指向上下文)
// setTimeout(() => {
// console.log(0)
// }, 500);