TypeScript学习笔记—安装与基础类型

angular等大型框架的基础语言为typescript,学习了一阵angular后,又回来从新学习typescript,有了一些体会,在这里和你们进行一下分享。javascript

安装TypeScript和编译

安装TypeScript很是简单,在计算机安装了node.js的状况下,经过npm就能够安装:java

npm install -g typescript

TypeScript是以ts为扩展名的文件,不能直接使用,要编译为javascript文件,才能使用。例如咱们有一个greeter.ts文件,编译命令是:node

tsc greeter.ts

输出结果为一个greeter.js文件。这样咱们就可使用了。typescript

TypeScript的基础类型

为了让程序有价值,咱们须要可以处理最简单的数据单元:数字,字符串,结构体,布尔值等。 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便咱们使用。这里经过代码列举一下typescript的基础类型,注意看在冒号和等号之间的代码,它定义了变量的类型,在函数中就表明参数或返回值的类型。
布尔值let isDone: boolean = false;
数字:全部数字类型都是浮点型:let decLiteral: number = 6;
字符串let name: string = "bob";
数组有两种定义方法:
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
元祖:这是一个新的概念。
定义元祖:let x: [string, number];
给元祖赋值:x = ['hello', 10];
若是元祖值越界,会采用联合类型替代x[3] = 'world';
访问元祖里的数据:console.log(x[0] + ' ' + x[1] + ' ' + x[3] + x[5]);
访问的结果是:hello 10 world undefined
这里有个有趣的现象,x[5]越界了并且没有定义,结果为undefined。
枚举:enum类型是对JavaScript标准数据类型的一个补充。使用枚举类型能够为一组数值赋予友好的名字。
定义枚举:enum Color {Red, Green, Blue}
将枚举属性赋值给变量:
let c: Color = Color.Green;
let colorName: string = Color[2];
c的值变为Green。
默认状况下,从0开始为元素编号。 你也能够手动的指定成员的数值:npm

enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green;

c的指仍是Green
any类型:有时候,咱们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,好比来自用户输入或第三方代码库。 这种状况下,咱们不但愿类型检查器对这些值进行检查而是直接让它们经过编译阶段的检查。 那么咱们可使用 any类型来标记这些变量。编程

let notSure: any = 4;
let list3: any[] = [1, true, "free"];
list[2] = 100;

list的内容变为:[1, true, 100]
any类型和Object类型的区别:Object类型的变量只是容许你给它赋任意值 - 可是却不可以在它上面调用任意的方法,any类型能够调用任意方法。
void:这个类型和其余有void类型的语言含义相同,表示不返回任何值。这个类型主要用在函数的返回值上,声明一个void类型的变量没有什么大用,由于你只能为它赋予undefined和null。
null 和 undefined:这两个类型用处也不是很大,也许在某处你想传入一个 string或null或undefined,你可使用联合类型string | null | undefined(联合类型后面再说)。
never:never类型表示的是那些永不存在的值的类型。数组

// 返回never的函数必须存在没法达到的终点
function error(message: string): never {
    throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}
// 返回never的函数必须存在没法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

类型断言:有时候你会比TypeScript更了解某个值的详细信息。经过类型断言这种方式能够告诉编译器你要声明的类型。
类型断言的两种写法:框架

  • 尖括号语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
  • as语法
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

TypeScript的基本类型就是这些了,在这里给你们罗列出来,做为参考。函数

相关文章
相关标签/搜索