基础类型
类型1:布尔值
说明:true或者false
let a: boolean = false;
类型2:数字
说明:ts里面所有的数字都是浮点数,类型为number,十进制、十六进制、二进制、八进制
let b: number = 6;
let c: number = 0xf00d;
类型3:字符串
说明:使用双引号(")或单引号(')表示字符串
let d: string = "xiaoming";
d = "xiaohong";
类型4:模板字符串
说明:定义多行文本和内嵌表达式,字符串被反引号包围(`),以${ exp }嵌入表达式
let nname: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${nname}.
I'll be ${ age + 1 } years old next month.`;
console.log("模板字符串:");
console.log(sentence);
类型5:数组
说明:方式一:在元素类型后面接上[],方式二:使用数组泛型,Array<元素类型>
let list: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
类型6:元组Tuple
let x: [string, number];
x = ['hello', 10];
console.log(x[0].substr(1));
// console.log(x[1].substr(1)); //会报错,因为number类型没有substr方法
// x[3] = 'world'; //会报错,ts2.7版本后,元祖长度被固定,访问元祖越界元素会报错
类型7:枚举enum
enum Color {Red = 1, Green = 3, Blue};
let cc: Color = Color.Green;
let colorName: string = Color[3];
console.log(cc); // 输出为3
console.log(colorName); // 输出为Green
类型8:Any
说明:可以是任意类型的值,可以调任意方法
let nos: any = 4;
nos = "maybe a string instead";
nos = false;
// nos.ifItExists();
// nos.toFixed();
let lisa: any[] = [1, true, "free"];
lisa[1] = 100;
console.log(lisa); // 输出为[1, 100, 'free']
类型9:Void
function warnUser(): void {
console.log("This is my warning message");
}
let unusable: void = undefined;
类型10:Null和Undefined
let u: undefined = undefined;
let n: null = null;
类型11:Never
说明:永不存在的值的类型
function error(message: string): never { // 返回never的函数必须存在无法达到的终点
throw new Error(message);
}
function fail() { // 推断的返回值类型为never
return error("Something failed");
}
function infiniteLoop(): never { // 返回never的函数必须存在无法达到的终点
while (true) {
}
}
类型12:Object,除number、string、boolean、symbol、null、undefined之外的类型
declare function create(o: object | null): void;
create({prop: 0 });
create(null);
// create(42); // 报错
// create("string"); // 报错
// create(false); // 报错
// create(undefined); // 报错
let shoes: {size: number, color: Color};
shoes = {
size: 38,
color: Color.Green
}
// 属性后面加?,表示属性可选
let student: {name: string, age: number, class?: string};
student= {name: '小李', age: 18};
// 属性加中括号,表示可以有任意属性,any表示任意类型
let people: {name: string, [keys: string]: any};
people= {name: '小张', age: 12, idcard: '23451212434'};
类型13:类型断言
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
let strLength2: number = (someValue as string).length;