[TypeScript语法2]basicTypes

来源: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;//10
let hex: Number = 0x10;  //16
let binary: Number = 0b10;//2
let octal: Number = 0o10;  //8
console.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值