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