一句话描述typescript:
typescript是javascript的超集,属于 强类型、面向对象 语言,所以声明变量时要声明变量类型,typescript文件后缀名为 ".ts",属于编译型语言;
typescript变量声明
1、基础数据类型
string,number,boolean,object,array,null,undefined 类型的变量格式是统一的;声明格式:
关键字 变量名:变量类型 = 数据值;
let varu:undefined=undefined;
let varn:null=null;
let vars:string='o';
let varb:boolean=false;
let vara:number[]=[1,2,1];
函数声明格式
function 函数名(参数:参数类型):返回值类型 { 函数体 };示例
var varf = function (bum:number):number{
return 0;
};
function varf2(para1:string):string{
return 'hello';
}
元组定义
关键字 变量名:[ 数据类型1,数据类型2,数据类型3... ] = [ 数组中的数据只能属于声明定义中的类型 ]
let arr:[string,number]=['aa',5]; //声明数据个数应与数据长度一致
枚举定义
关键字 变量名 { 数据 };
enum sex {male,female} ;//数据智能是指定的几个值中的某一个;类似星期,月份只有固定的数值;
let type:sex=sex.male;
//注意此处type值为0,等同于将 sex 对象转成数组,然后取male的索引值;
//如果要取的值是"male",则赋值语句应写成
let type:string=sex[0];// "male"
任意类型
关键字 变量名:any = 任意数据类型;用于声明未确定格式的数据声明;
let data:any ='hello';
let data:any =1;
let data:any =false;
let arr:any=[1,'string',true,{},null,undefined]
void类型
主要用于控制范湖返回值;声明函数时,如果声明函数返回值为void,则此函数不可以有return 语句;
// void 如果省略void,且未添加其他类型声明,则可以返回任意类型
function foo():void{
console.log('test')
}
// 有返回值函数
function fun():number{
return 0;
}
2、联合数据类型
一个变量指定多种数据类型
let data:string|number|boolean = 2; //此声明语句定义,data变量可以存储三种数据中的任意一种;
3、类型推论
let num = 3;
此处未指明num的数据类型;ts会根据后面的值来推论出num应该是那种数据;此语句等同于 let num :number =3;后续修改num值时,也只能赋值为number类型;
let xdata;
此句未对变量赋初始值,则定义xdata的数据类型为any,等同于 let xdata:any;
4、类型断言
用 (< > )符号或者(as) 来实现数据类型判断功能
let x:any = 'hello world!';
let y:string|boolean|number = 0;
// 使用< >进行数据断言
//当数据为string类型时,取string的长度,不满足断言条件,则此变量值为undefined;
let strLength1:number = (<string>x).length;
console.log(strLength1);//12
x = 0; //修改数据类型
let strLength2:number = (<string>x).length;
console.log(strLength2);//undefined
// 使用 as 进行数据断言
x ='hello world!';
let strLength3:number = (x as string).length;
console.log(strLength3);//12
x = 0; //修改数据类型
let strLength4:number = (x as string).length;
console.log(strLength4);//undefined