TypeScript在JavaScript的基础上加入静态类型检查,每一个变量都有一个固定的数据类型
let message:string="Hello World"
变量类型
-
any
任意类型,关闭ts类型检测
当变量只声明,未赋值,变量类型是any(隐式声明)
可以赋值给任意类型变量let d:any d=10 d='hello' d=true -
string
字符串类型,可以用单引号或者双引号
- number
数字类型,可以赋值整数或浮点数
- boolean
布尔 true/false
-
unknown
安全的any类型,不能直接赋值给其他类型使用方式
let e:unknown let s:string //1.if判断类型 if(typeof e==="string"){ s=e } //2.断言,告诉编译器变量的类型 s=e as string //方式1 s=<string>e //方式2 -
void
没有任何类型的返回值
-
函数没有返回值
function fun():void{ return //方式1 return undefined //方式2 return null //方式3 } -
变量只能赋值undefined或null
let a:void=undefined let b:void=null
-
never
函数没有返回值,用于报错信息或无限循环function fun():never{ throw new Error('报错了') } function fun():never{ while(true){ console.log("无限") } } -
object
let a:object //方式1 a={} //方式2 a=function(){} //方式3 let p={name:"jack",age:21} // 取值 p.name p['name']限制对象具有属性,?表示属性可选
let b:{name:string,age?:number} b={name:'张三',age:19}设置任何类型的数据,属性是string类型,值为any类型
let b:{name:string,[propName:string]:any} b={name:'舜玉',age:18,gender:'男'}函数类型声明
(形参:类型)=>返回值
let b:(a:number,b:number)=>number function(n1:number,n2:number)=>{ return n1+n2 } -
数组
//方式1 let c:string[] c=['a','b','c'] //方式2 let d:Array<number> d=[1,2,3] -
tuple 元组
固定长度的数组
let d=[string,string] d=['张六','吴九'] -
enum 枚举
状态值进行枚举,方便书写和使用
enum Gender{ Male=0, Female=1 } let i:{name:string,gender:Gender} i={ name:'格ooo', gender:Gender.Male }
声明方法
-
| 或
let a:string|number -
& 与
let a:{name:string}&{age:number} a={name:'战士',age:18} -
type 类型别名
type myType=1|2|3|4|5 let b=myType
undefined,null,空字符串,数字0为作为判断时为false,否则为true
for循环
for ... in in是循环的索引
for ... of of是循环的元素
enum 枚举
枚举项用逗号隔开,没有赋值,值从0开始依次赋值
类与接口
enum Msg{
HI="Hi",
HELLO="Hello"
}
interface A{
say(msg:Msg):void
}
class B implements A{
say(msg:Msg):void{
console.log(msg+'I am B')
}
}
let a:A=new B()
a.say(Msg.Hi)
class Rectangle{
private width:number
private length:number
constructor(width:number,length:number){
this.width=width
this.length=length
}
public area(){
return this.width*this.length
}
}
class Square extends Rectangle{
constructor(side:number){
super(side,side)
}
}
let s=new Square(10)
console.log('正方形的面积是:'+s.area())