基础数据类型-1
数据类型-1
- 基础数据类型
export default {};
// 数值类型 number
let money: number;
money = 123;
money = 18;
money = 20;
// money = "邱淑贞";
// money = ["李一桐", "李嘉欣", "李艺彤"];
// money = 0x00;
// money = 0b00;
// 布尔类型 boolean
let flag: boolean;
flag = true;
flag = false;
// flasg = "杨紫";
// 字符串类型 string
let beauty: string;
beauty = "周慧敏";
let dream = `我的女神是${beauty}, 为了参加她的演唱会,我想月入${money}k`;
console.log(dream);
- 数组
export default {};
// 数组类型
// 方式一
let beautyList: string[];
beautyList = ["李嘉欣", "王祖贤", "邱淑贞"];
// beautyList = ["李嘉欣", "王祖贤", "邱淑贞", 123, true];
// 方式二
let moneyList: Array<number>;
moneyList = [10, 20, 30];
// moneyList = [10, 20, true]
// 方式三 联合类型
let dream: (string | number)[];
dream = [10, 20, 30, "邱淑贞", "李一桐", "赵丽颖"];
// dream = [10, 20, 30, "邱淑贞", "李一桐", "赵丽颖", true];
// 方式四 任意类型 不推荐
let arbitrarliy: any[];
arbitrarliy = [100, "关之琳", true, [1, 2, 3], { a: 123 }];
/*
总结: 数组是我们开发过程中最常用的数据类型, 我们往往会在发送axios请求的时候,
获取到数组, 因此我们需要额外注意, 数组在这个场景下的定义与使用
*/
- 元组
export default {};
// 元组类型
let tup1: [string, number, boolean];
tup1 = ["宋祖儿", 100, false];
// tup1 = ["宋祖儿", 100, false, "TRUE", 123];
// tup1 = [100, "宋祖儿", false];
/*
总结:
定义: ["", "", ...]
作用: 用于保存定长长度的数组和数据类型
*/
- any 与 void
export default {};
// any类型
// any表示任意类型, 当我们不清楚某个值的具体类型的时候我们就可以使用any
// 在TS中任何数据类型的值都可以赋值给any类型
// 场景一
// 变量的值会动态改变时, 比如来自用户输入, 任意值类型可以让这些变量跳过编译
let salary: any = 1800;
salary = "my salary is 18k";
salary = false;
// 场景二
// 改写现有代码时, 任意值允许在编译时可选择的包含或移除类型检查
let x: any = 4;
// x.ifItExist();
// x.toFixed();
// 场景三
// 定义存储各种类型数据的数组时
let beautyList: any[] = ["邱淑贞", "蒋依依", "李紫婷", 10, 20];
beautyList = [
"邱淑贞",
"蒋依依",
"李紫婷",
10,
20,
true,
[10, 20, 30],
{ a: 100, b: 200 },
];
// void类型
// 某种程度上来说, void类型像是与any类型相反, 它表示没有任何类型.
// 当一个函数没有返回值时, 你通常会见到其返回值类型是 void
// 在TS中只有null和undefined可以赋值给void类型
function makeMoney(): void {
console.log("I want to manke money and marry a wife!");
// return "我今天赚了18K, 存起来"
}
makeMoney();
let value: void;
// value = 123;
// value = "杨超越";
// value = false;
value = undefined;
// value = null; 已经不可以
- null 与 undefined
export default {};
// TypeScript里, undefined和null两者各自有自己的类型分别叫做undefined和null.
// 和 void相似, 它们的本身的类型用处不是很大
let x: undefined = undefined;
let y: null = null;
// x = 123;
// y = "邱淑贞";
// 非严格模式下 , 是否可以赋值给其他类型?
let money: string = "100k";
// money = x; 不可以
// money = y; 不可以
- never 与 object
export default {};
// Never类型
// never类型表示的是那些永不存在的值的类型
// 例如: never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型
// 变量也可能是 never类型, 当它们被永不为真的类型保护所约束时.
// 注意点:never类型是任何类型的子类型, 也可以赋值给任何类型;然而, 没有类型是never的子类型或可以赋值给never类型(除了never本身之外).
// 即使 any也不可以赋值给never
// never类型是那些总是会抛出异常
// function error(message: string): never {
// throw new Error(message)
// }
// error("鞠婧祎");
// 推断的返回值为never
// function fail() {
// return error("李一桐");
// }
// 返回never的函数必须存在无法到达的终点
// function infiniteLoop(): never {
// while(true) {
// }
// }
// Object类型
// 表示一个对象
// 定义了一个只能保存对象的变量
let goddess: object;
// goddess = 1;
// goddess = "白鹿";
// goddess = false;
goddess = {
name: "白鹿",
age: 27,
};
console.log(goddess);