typescript精简版1:用ts表示常见数据类型 (2)

看看上面的代码被编译成了ES5是怎样的。

"use strict"; /** * 1.1 ts 如何声明一个boolean, number, string类型的值 */ // 在js中,定义 isFlag 为true, 但是后面还可以重新给它赋值为字符串,而ts中就不行,同理,声明number, string 也一样 var bool = true; // 会报错:不能将类型“"str"”分配给类型“boolean”。 // isFlag = "str" var str = "a"; // 会报错:不能将类型“1”分配给类型“string”。 // str = 1 var num = 1; // 会报错:不能将类型“"a"”分配给类型“number”。 // num = "a" /** * * * * 1.2 ts 如何声明一个 undefined, null 类型的值 */ var u = undefined; var n = null; /** * * * * 1.3 ts 如何声明一个数组 */ // 方式一:声明一个每一项只能是string类型的数组。在元素类型后面接上[],表示由此类型元素组成一个数组 var arr1 = ["a", "b"]; // 方式二:使用数组泛型,Array<元素类型> var arr2 = ["a", "b"]; var arr3 = [1, 2, 3]; // 数组里想放对象? var arr4 = [{ a: "1" }, { b: "2" }]; // 数组里想放多种数据类型? 用 | 隔开就好 var arr5 = ["a", 1]; // 数组里想放任意类型? var arr6 = ["a", 1, true, { a: 1 }, [1, 2]]; var obj1 = { name: "obj1", id: 1 }; var obj2 = { name: "obj2", age: 18, id: 2 }; var obj4 = { name: "a" }; var obj5 = { name: "a", age: 1 }; var obj6 = { name: "a", age: 1, other1: 2, other2: "2", other3: { a: 1 } }; /** * * * * 1.5 ts 如何声明一个函数 */ // 一: :void 表示函数没有返回值 function fn2(x) { console.log(x); } // 二: 这里表示sum 函数接收两个参数(多了少了都不行), 参数类型是 number, 返回值也是number function fn1(x, y) { return x + y; } // 三: 同样也可以用?来表示可选参数,但是可选参数只能放到最后面 function fn3(x, y) { if (y) { return x + y; } return x; } // 四:ts 怎么表示默认参数 function fn41(x, y) { if (y === void 0) { y = 1; } return x + y; } // 传值的时候,默认参数可以不传 fn41(1); fn41(1, 2); // 默认参数不像可选参数必须放后面,它也可以放前面, 但是还是推荐放后面去 function fn42(x, y) { if (x === void 0) { x = 1; } return x + y; } // 传值的时候,默认参数可以不传,但是如果默认参数不放后面,这样传值感觉很怪 fn42(undefined, 2); // 五:ts表示剩余参数。利用扩展运算符 function fn52(array) { var items = []; for (var _i = 1; _i < arguments.length; _i++) { items[_i - 1] = arguments[_i]; } items.forEach(function (item) { array.push(item); }); } // 六:箭头函数 // es6 箭头函数:没有参数的时候 // let fn61 = () => {} // es6 箭头函数:一个参数的时候,可以不用圆括号 // let fn62 = arg => { // console.log(arg) // } // es6 箭头函数:多个参数的时候,如果致谢一行的话,不用大括号和return // let fn63 = (arg1, arg2) => arg1 + arg2; // es6 箭头函数:多个参数并且换行的时候,需要写大括号和return // let fn64 = (arg1, arg2) => { // return arg1 + arg2 // } // es6 箭头函数:返回一个对象,必须在对象外面加上圆括号 // let fn65 = (arg1, arg2) => ({a: arg1, b:arg2}) // es6 上例中一般会不改名字,同名可以缩写成这样 // let fn66 = (arg1, arg2) => ({ // arg1, // arg2 // }) // 上面的代码在在线编译中不会报错,但是在vscode编辑器里报错...噢多凯?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppzjd.html