[TypeScript语法2]basicTypes

来源:互联网 发布:淘宝特步运动服 编辑:程序博客网 时间:2024/05/12 04:14

来源:http://www.typescriptlang.org/docs/handbook/basic-types.html

但是官网也有错的地方,比如never,我的typescript是2.3.4啊,最新的,怎么没这个语法呢???

/**练习typeScript-2 basicTypes * Created by liyanq on 17/6/8. *//*1,Boolean就是基础类型,不是对象类型,和es5的Boolean构造函数两码事~ * 2,大写的是接口,小写的是基础类型.只有用Number.valueOf()才能和基础类型相加减~~ * 3,Just like JavaScript, TypeScript also uses double quotes (") or single quotes (') to surround string data. * *///------Boolean-----//let isDone: boolean = false;console.log(isDone.toString());// isDone = "H";//Type string is not assignable to type boolean//-----Number-------//let decimal: Number = 10;//10let hex: Number = 0x10;  //16let binary: Number = 0b10;//2let octal: Number = 0o10;  //8console.log(decimal.toFixed(2), hex.toString(2), binary.toExponential(2), octal.toPrecision(4));//10.00 10000 2.00e+0 8.000//-----string------//let Name: String = "twelveMan";// let name:String = "twelveMan";//cannot redeclare block-scope variable 'name'???let age: Number = 34;let info = `${Name}  ${age}`;//模版写法console.log(info);//-----array-------//let list: Array<Number> = [1, 2, 3];//看到范型了~~console.log(list.map(function (value) {    return value.valueOf() + 1;}).join(";"));//-------Tuple------///*如果前面声明类型了,后面的赋值就会检查类型,超出范围就不检查了~~*/let t1: [Number,String,Boolean,Boolean] = [34, "twelveMan", false, true];//es5中,直接就是个数组.=> var t1 = [34, "twelveMan"];t1[3] = true;t1[4] = "elevenMan";t1[5] = "elevenMan";t1[6] = "elevenMan";t1[7] = "elevenMan";t1[8] = false;console.log(t1);//------Enum-------///*1,声明必须小写,转换成es5好复杂啊~~ * 2,如果不指定值的话,默认的就是上一个值+1,指定的话,就是指定的值 * 3,可重复,但值相同*/enum Day {today = 5, tomorrow, afterTomorrow = 5}let e1: Day = Day.afterTomorrow;console.log(e1 === Day.today);//true// let e2: string = Day[1];//报错啊,官网的不准啊~// console.log(e2);//------Any-------///*1,es5本身就是any,这个语法没啥意义啊~*/let notSure: any = 4;notSure = "maybe a string instead";notSure = false;notSure = "maybe a string instead";console.log(notSure);let list2: any[] = [1, true, "free"];list2[1] = "hello";console.log(list2);//[ 1, 'hello', 'free' ]//-----void-------//// function warnUser():void {//    return "This is my warning message";the type string is not assignable to type void// }function warnUser():void {   console.log("This is my warning message");}warnUser();let unusable:void = undefined;unusable = null;//Declaring variables of type void is not useful// because you can only assign undefined or null to them://-------Null and Undefined------////说了一大堆,先知道没这两个类型就行了// let u: undefined = undefined;// let n: null = null;//-------Never----------//// function error(message: string):never {//Cannot find name never??官网也不靠谱啊~    // throw new Error(message);    // return message;// }// console.log(error("ddd"));//----type assertions --------///*1,如果someValue不是any类型(默认)的话,编译器会检查转型是否能成功~*/let someValue: any = "this is a string";let strLength: number = (<string>someValue).length;let strLength1: number = (someValue as string).length;console.log(strLength , strLength1);//16 16