1.声明
声明标识 + 变量名 + ':' + 声明类型 = 值
var a:number = 56; // 数字类型(C => int a = 5;)
enum REN{nan='男人',nv='女人',cen='中性人'} // 枚举类型
2.类型
- undefined
- number: 数值类型;(可以是小数)
- string : 字符串类型;
- boolean: 布尔类型;(只有true,false => 1不能像js表示true)
- tuple : 元祖类型;(可以赋多种类型的数组,但又不同于js,需要<>声明 let arr1 : [string,number])
- Array<...> : 数组类型;
let arr1:number[ ] // 声明一个数值类型的数组
let arr3:Array<string> = ['jack','tomy','gogo'] // 声明一个字符串类型的数组
let arr3:Array<string> = new Array('jack','tomy胖','gogo') // 声明一个字符串类型的数组
- null:空类型。
- any: 任意类型,一个牛X的类型;
- void:空类型,用于函数返回;
- enum:枚举类型; (enum REN{ nan , nv ,yao} console.log(REN.yao))
3.函数(不return 声明void)
①.返回可多种类型
function searchXiaoJieJie(age:number):string/void{
return '找到了'+age+'岁的小姐姐'
}
var age:number = 18
var result:string = searchXiaoJieJie(age)
console.log(result)
②.可选参数的函数 (?)
function searchXiaoJieJie2(age:number,stature?:string):string{
if(stature !=undefined){
yy = yy + stature
}
}
③.有默认参数的函数
function searchXiaoJieJie2(age:number=18,stature:string='大长腿'):string{
let yy:string = ''
yy = '找到了'+age+'岁'
if(stature !=undefined){
yy = yy + stature
}
return yy+'的小姐姐'
}
④.有剩余参数的函数
function searchXiaoJieJie3(...xuqiu:string[]):string{
let yy:string = '找到了'
for (let i =0;i<xuqiu.length;i++){
yy = yy + xuqiu[i]
if(i<xuqiu.length){
yy=yy+'、'
}
}
yy=yy+'的小姐姐'
return yy
}
<br /><br />
4.日期
let d:Date = new Date()
let d:Date = new Date(1000)
console.log(d) //1970-01-01T00:00:01.000Z
let d1:Date = new Date('2018/09/06 05:30:00')
let d2:Date = new Date('2018-09-06 05:30:00')
let d3:Date = new Date('2018-09-06T05:30:00')
console.log(d1)
console.log(d2)
console.log(d3)
let d:Date = new Date(year,month,day,hours,minutes,seconds,ms);
5.正则
//构造函数法
let reg1:RegExp = new RegExp("jspang") //表示字符串规则里含有jspang
console.log(reg1)
let reg2:RegExp = new RegExp("jspang",'gi')
console.log(reg2)
//字面量法
let reg3:RegExp = /jspang/
let reg4:RegExp = /jspang/gi
6.类
关键字:class(标识)、extends(继承)、constructor(构造函数)、super()(继承属性)
类里面的修饰符
// public:己,子,外
// protected:己,子
// private:己
// 属性不加修饰符,默认是公有
https://blog.csdn.net/u010856177/article/details/81089433
public name: string //属性 public关键词可省略,不暴露出去
constructor(name: string) { //构造函数 实例化触发的方法
this.name = name;
}
TS趋势:
- 静态类型和面向对象
- 应用程序
- JS超集 类sass和css
- 跨平台且开源
- 开源引入js流行库