基本数据类型
TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用
类型 | 描述 |
---|---|
boolean | 限制为布尔类型, true 或者 false |
number | 限制为任意的数字。 二进制,八进制,十进制,十六进制均可 |
string | 限制为任意的字符串。单引号,双引号,反引号均可 |
字面量 | 限制为某个字面量 |
any | 限制为任意类型 |
void | 限制为 undefined, 一般用来限制函数的返回值 |
object | 限制为对象类型 |
array | 限制为数组类型 string[] Array<number> |
tuple 元组 | 限制为固定长度与类型的数组 |
enum 枚举 | 限制为枚举的数据 |
布尔
最基本的数据类型就是简单的 true/false 值,在JavaScript 和 TypeScript 里叫做 boolean
(其它语言中也一样)
let b1:boolean = true;
b1 = false;
// b1 = 123; // 报错:不能将类型“number”分配给类型“boolean”
number
除了支持十进制和十六进制字面量,也支持二进制和八 进制字面量
let num1:number = 123;
num1 = 1.3;
num1 = -20;
num1 = 0;
num1 = NaN;
// num1 = 'abc'; // 报错: 不能将类型“string”分配给类型“number”
let a1: number = 10 // 十进制
let a2: number = 0b1010 // 二进制
let a3: number = 0o12 // 八进制
let a4: number = 0xa // 十六进制
string
JavaScript 程序的另一项基本操作是处理网页或服务器端的文本数据。 像其它语言里一样,我们使用 string
表示文本数据类型。 和 JavaScript 一样,可以使用双引号("
)或单引号('
)表示字符串。
let str:string = 'abc';
str = 'zyx'
// str = 123; // 报错:不能将类型“number”分配给类型“string”。
object
引用类型:数组,函数,对象都为object类型
let obj1:object = {name:'atguigu', age:20};
obj1 = [1,2,3];
obj1 = function(){
console.log(123);
}
字面量类型
TS 允许限制某个变量为固定的某个值
let z: 521 = 521;
let z2: 'love' = 'love';
// z='abc'; //类型不符 error
数组
TypeScript 像 JavaScript 一样可以操作数组元素。 不过数组中元素值的类型都是一样的
有两种方式可以定义数组。
第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组
第二种, 方式是使用数组泛型,Array<元素类型>
let arr: number[] = [1,2,3];
// arr.push('abc');// error
let arr2: Array<number> = [4,5,6];
let arr3:string[] = ['1','2','3']
let arr4:Array<string> = ['a','b','c']
any
any 类型允许变量的值为任意类型, 并且可以进行任意类型的赋值
let a:any = 123;
a = 'abc';
a = true;
a = [1,2,3];
尽量不要用 any, 因为对于 any 类型 typeScript 会关闭类型检查功能