39. 什么是TS?
1. 定义
TS(TypeScript)
是一种由微软开发的编程语言,它是 JavaScript
的一个超集,提供了静态类型检查、类、接口、泛型等特性,可以在大型项目中提供更好的代码可读性、可维护性和可靠性。
2. TS的优点
与 JavaScript
相比,TypeScript
有以下优点:
- 更严格的类型检查:
TypeScript
强制要求变量、函数和对象的类型必须定义清楚,可以在编码阶段捕捉一些潜在的错误,提高代码可靠性。 - 更好的代码提示:
TypeScript
可以在编辑器中提供更好的代码提示和补全,减少编码错误。 - 更好的可读性和可维护性:由于
TypeScript
的强类型特性和更严格的语法规范,代码可读性和可维护性得到了提高。
另外,TypeScript
还支持 ES6+
的语法,并且可以与现有的 JavaScript
应用程序和库一起使用,因此是一个非常强大的编程语言。
3. TS的数据类型
- 布尔值(Boolean)
let isDone: boolean = false;
- 数字(Number)
let age: number = 18;
let price: number = 3.99;
- 字符串(String)
let name: string = "John";
let message: string = `Hello, ${name}!`;
- 数组(Array)
let numbers: number[] = [1, 2, 3, 4, 5];
let strings: string[] = ["hello", "world"];
- 元组(Tuple)
let myTuple: [string, number] = ["hello", 42];
- 枚举(Enum)
enum Color {
Red = 1,
Green = 2,
Blue = 3
}
let myColor: Color = Color.Green;
- Any: 任意类型,可以赋任何值。
let variable: any = "hello";
variable = 42;
- Void: 表示没有返回值的函数。
function logMessage(message: string): void {
console.log(message);
}
- Null和undefined: 表示空值和未定义的值。
let myVar: null = null;
let myOtherVar: undefined = undefined;
- Never: 表示永远不存在的值,例如抛出异常或进入无限循环。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
- Object:表示非原始类型,包括对象、数组、函数等。
let person: object = { name: "John", age: 18 };
let myArray: object[] = [{ name: "John" }, { name: "Jane" }];
- Unknown:表示未知类型,类似于 any,但是更加安全,不能随意赋值。
let myUnknown: unknown = "hello";
// 报错:Property 'toUpperCase' does not exist on type 'unknown'.
myUnknown.toUpperCase();