博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档
/*变量声明在之前的js中一直是使用var关键字,现在支持了全新的声明方式 let 与 constvar 声明的变量作用域一直很让人费解,所以现在推荐使用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];