TS基础篇1:基本类型
第一 : 布尔值boolean
let isDone : boolean= true;
最基本的数据类型就是简单的true/false值
第二 : 数字number
var testFun=function(){
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
console.log(decLiteral);
console.log(hexLiteral);
console.log(binaryLiteral);
console.log(octalLiteral);
}
testFun();
输出:
6
61453
10
484
1、和JavaScript一样,TypeScript里的所有数字都是浮点数,类型是 number
2、除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。
第三:字符串string
var testFun =function(){
let as : string ='单引号定义字符串';
let bs : string ="双引号定义字符串";
console.log(as);
console.log(bs);
let name:string='杨阳';
let age:number=18;
//模板字符串是用反引号
let sentence : string=`模板字符串(反引号) : name is ${ name } , age is ${ age + 1 }.`;
//效果类似: let sen: string = "name is " + name + ", age is" + (age + 1) + " .";
console.log(sentence);
}
testFun();
第四:数组Array 和 元组Tuple
--------查看另一篇博文
第五:枚举(enum类型)
var testFun=function(){
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
console.log(c);
//默认情况下,从0开始为元素编号。可以手动的指定成员的数值。
enum Colors {Red = 1, Green = 4, Blue}
let cs: Colors = Colors.Green;
console.log(cs);
//由枚举的值得到它的名字
console.log(Colors[4]);
}
testFun();
输出:
1
4
Green
第六 : any类型
1、用 any类型标记的变量,类型检查器不对这些值进行检查而是直接让它们通过编译阶段的检查
2、对现有代码改写是十分有用的,与 Object有相似的作用,但Object类型的变量只是允许你给它赋任意值,却不能够在它上面调用任意的方法,即便它真的有这些方法。
var testFun=function(){
//toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
let num :number =13.37;
console.log(num.toFixed(1));
let notSure: any = "toFixed失效";
notSure = 4.56789;
notSure.toFixed(1);
console.log(notSure);
}
testFun();
输出:
13.4
4.56789
第七 : void
function testVoid() :void {
console.log("返回值为空,表示没有任何类型");
}
只能为它赋予undefined和null
第八: undefined和null
let u: undefined = undefined;
let n: null = null;
1、默认情况下null和undefined是所有类型的子类型
注意:strictNullChecks 参数用于新的严格空检查模式。
2、当指定了--strictNullChecks标记。
-----在严格空检查模式下,,null 和 undefined 值都 不 属于任何一个类型,它们只能赋值给自己这种类型或者 any (有一个例外,undefined 也可以赋值给 void)。
第九:never类型
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {
}
}
1、never类型表示的是那些永不存在的值的类型
2、never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。
第十 : 断言类型
------类型断言:好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。 TypeScript会假设你,程序员,已经进行了必须的检查。
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
等价:
let strLength: number = (someValue as string).length;
当你在TypeScript里使用JSX时,只有 as语法断言是被允许的。