安装
1 | sudo npm install typescript -g |
编译
1 | tsc hello.ts |
TypeScript只会进行静态检查,如果发现有错误,编译的时候就会报错,但还是会生成编译结果。
原始数据类型
布尔值,数值,字符串,null, undefined,symbol。
布尔值
使用boolean定义布尔值类型,构造函数Boolean创造的对象不是布尔值,而是一个Boolean对象。
数值
使用number定义数值类型
字符串
使用string定义字符串类型、
用来定义模板字符串,${expr}
用来在模版字符串中嵌入表达式。
空值
void 可以表示没有任何返回值的函数,也可以赋值为undefined和null
null和undefined
undefined只能被赋值为undefined,null只能被赋值为null。
与void的区别是undefined和null是所有类型的子类型,可以赋值给其他类型的变量
任意值
任意值Any表示允许赋值为任意类型。
声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型。
类型推论
如果没有明确的指定类型,TypeScript会依照类型推论的规则推断出一个类型。
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查。
联合类型
只能访问此联合类型的所有类型里共有的属性或方法。
联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型。
对象的类型-接口
赋值的时候,变量的形状必须和接口的形状保持一致,存在可选属性,但不允许添加未定义的属性。
一旦定义了任意属性,那么确定属性和可选属性都必须是它的子属性。
只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候。
数组的类型
[类型+方括号]
数组的项中不允许出现其他的类型