Typescript学习Day2(声明与解构)

1,声明

//在Typescript中,支持var,let和const这样的声明方式
//1, 块级作用域 let var
//例1:
function func(flag:boolean):number{
	let a = 99
	if(flag){
		//let b = a + 1   
		var b = a + 1
		return b
	}
	return b //如果是let声明的那个b就会报错 因为let具有块级作用域 然后这里返回的b 是没有被定义过的
	//如果是var声明就不会报错 因为var没有块级作用域 , 且会被提升
}
func(true)

//例2:
function funcA(x){
	let x = 100  //注意 这里是错误的 因为x在当前作用域已经作为函数传参被定义了 let不可重复定义
}

//例3:
function funcB(flag:boolean,x:number):void{
	if(flag){
		let x = 100  //这里不会报错 因为let的作用域始终在当前花括号下 对于外界是封闭的
  }
}

//2, const
//const声明与let声明相似,它与let拥有相同的作用域规则,单const声明的是常量,常量不能被重新赋值

2,解构

//数组 
let arr:number[] = [1,2]
let [a,b] = arr
console.log(a,b)  //a = 1 , b = 2
//调换位置
[a,b] = [b,a]  //a = 2  , b = 1

//...展开运算符
let [first, ...reset] = [1,2,3,4,5,6]
console.log(first)  //1
console.log(reset)  //[2,3,4,5,6] 

//对象
enum Sex{
	Man,
	Women
}
interface Person{
	personName:string,
	personAge:number,
	personSex:Sex
}
let person:Person = {
	personName:'nineone',
	personAge:22,
	personSex:Sex.Man
}
let {personName,personAge,personSex} = person //nineone,22,0

你可能感兴趣的:(typescript,ts,typescript,javascript,js)