博文读自 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];