【有哪些基本类型?】
number 数字类型,boolean 布尔类型,string 字符串类型,字面量 类型,any 类型 —-表示任意类型,unknown 类型 —-实际上就是一个类型安全的any,void 类型—用来表示空,以函数为例,就表示没有返回值的函数,never 类型—表示永远不会返回结果,object对象类型,array 数组类型, tuple 元组类型—–固定长度的数组,enum 枚举类型
一.字符串string
//字符串----“双引号”,“单引号”,“es6模板字符”
let str:string;
str="1"
str="2"
str="100"
二.数字类型number
//ts的变量声明
let num:number;
num=10;
console.log(num);
三.布尔值boolean
//布尔值
let flag:boolean;
flag=false;
// flag=1 报错
四.字面量型
//字面量 类型
let color: 'red' | 'blue' | 'black';
let num1: 1 | 2 | 3 | 4 | 5;
五.any 类型 —-表示任意类型
// any 类型 —-表示任意类型
let d: any = 4;
d = 'hello';
d = true;
//未定义类型的话,就表示任意类型
let d1;
d = 10;
d = 'hello';
d = true;
六.unknown 类型
// unknown 类型 —-实际上就是一个类型安全的any----unknown 类型的变量,不能直接赋值给其他变量
// unknown 表示未知类型的值
let e: unknown;
let s: string;
// s = e; //报错
if (typeof e === 'string') {
s = e;
}
七.void 类型
// void 类型—用来表示空,以函数为例,就表示没有返回值的函数
let unusable: void = undefined;
八.never 类型
// never 类型—表示永远不会返回结果
function error(message: string): never {
throw new Error(message);
}
九.object对象类型
let obj: object = {};
十.array 数组类型
// array 数组类型----两种方式
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
十一.tuple 元组类型
// tuple 元组类型—–固定长度的数组 有几个类型 就只能写几个类型的值
/*
* 元组,元组就是固定长度的数组
* 语法:[类型, 类型, 类型]
* */
let x: [string, number];
x = ["hello", 10];
十二.enum 枚举类型
enum Gender {
Male = 1,
Female=2,
}
let i: { name: string; gender: Gender };
i = {
name: '孙悟空',
// gender: Gender.Male, // 'male'
gender: 1,
};
console.log(i.gender === Gender.Male);
补充:
// 在属性名后边加上?,表示属性是可选的
let b: { name: string, age?: number };
b = { name: '孙悟空', age: 18 };
// [propName: string]---键名: any----键值 表示任意类型的属性
let c: { name: string, [propName: string]: any };
c = { name: '猪八戒', age: 18, gender: '男' };
// array 数组类型----两种方式
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];