TypeScript 素描-变量声明

博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档

 

/*
变量声明在之前的js中一直是使用var关键字,现在支持了全新的声明
方式 let 与 const
var 声明的变量作用域一直很让人费解,所以现在推荐使用let来消除
var 声明变量带来的一系列问题
*/

// 第一个例子  
function f(flag: boolean) {
    if (flag) {
        var xxxx: number = 10;
    }
    xxxx = 12;
}
//在方法中 if 里声明了变量xxxx,但是在if外忍耐可以访问xxxx,如
//果声明方式换成 let 则变量的作用域只存在 if方法内

//第二个例子
function fun3() {
    for (var i = 0; i < 10; i++) {
        for (var i = 0; i < 10; i++) {
        }
    }
}
//也许上面的例子并不会出错,也不会带来什么麻烦,但是第二个例子
//很明显就是属于会出错的类型了。两次for循环都声明了变量i,然后
//它们在后面的循环中就用了同一个变量

//所以说了这么多废话,就是说let多NB,大家快来用吧-.- 不过实话
//使用let可以消除这些问题,即使出错也会快速的定位到错误的所在

if (true) {
    //而且在同一作用域是不可以重复声明同一个变量名的,let的作
    //用域是块级的
    //let let1 = 10;
    //let let1 = 10;
}

//const声明是一个常量,赋值后不可以再改变

//解构是有一个有趣的东西,具体可以通过代码来观察 
let input = [1, 2];
let [first, second] = input;
//等价与  let first =input[0]; let second = input[0]
//也可以当做方法的参数
function fun4([first, second]: number[]) { };
fun4(input);

// ...{args} 代表剩余的变量
let [n1, n2, ...args] = [1, 2, 3, 4, 5];
//, 忽略中间的变量
let [s1, , , s4] = [1, 2, 3, 4];

//解构对象
let o = {
    a: "foo",
    b: 12
}
let {a, b} = o;

//属性重命名
let {a: newName1, b: newName2} = o;
console.log(newName1);

//展开 可用于数组与对象
let let3 = [1, 2];
let let4 = [3, 5];
let bothPlus = [0, ...let3, ...let4, 6];
posted @ 2017-01-05 15:38  liangshiwei  阅读(792)  评论(0编辑  收藏  举报