39. 什么是TS?

1. 定义

TS(TypeScript)是一种由微软开发的编程语言,它是 JavaScript 的一个超集,提供了静态类型检查、类、接口、泛型等特性,可以在大型项目中提供更好的代码可读性、可维护性和可靠性。

2. TS的优点

JavaScript 相比,TypeScript 有以下优点:

  1. 更严格的类型检查:TypeScript 强制要求变量、函数和对象的类型必须定义清楚,可以在编码阶段捕捉一些潜在的错误,提高代码可靠性。
  2. 更好的代码提示:TypeScript 可以在编辑器中提供更好的代码提示和补全,减少编码错误。
  3. 更好的可读性和可维护性:由于 TypeScript 的强类型特性和更严格的语法规范,代码可读性和可维护性得到了提高。

另外,TypeScript 还支持 ES6+ 的语法,并且可以与现有的 JavaScript 应用程序和库一起使用,因此是一个非常强大的编程语言。

3. TS的数据类型

  1. 布尔值(Boolean)
let isDone: boolean = false;
  1. 数字(Number)
let age: number = 18;
let price: number = 3.99;
  1. 字符串(String)
let name: string = "John";
let message: string = `Hello, ${name}!`;
  1. 数组(Array)
let numbers: number[] = [1, 2, 3, 4, 5];
let strings: string[] = ["hello", "world"];
  1. 元组(Tuple)
let myTuple: [string, number] = ["hello", 42];
  1. 枚举(Enum)
enum Color {
  Red = 1,
  Green = 2,
  Blue = 3
}
let myColor: Color = Color.Green;
  1. Any: 任意类型,可以赋任何值。
let variable: any = "hello";
variable = 42;
  1. Void: 表示没有返回值的函数。
function logMessage(message: string): void {
  console.log(message);
}
  1. Null和undefined: 表示空值和未定义的值。
let myVar: null = null;
let myOtherVar: undefined = undefined;
  1. Never: 表示永远不存在的值,例如抛出异常或进入无限循环。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}
  1. Object:表示非原始类型,包括对象、数组、函数等。
let person: object = { name: "John", age: 18 };
let myArray: object[] = [{ name: "John" }, { name: "Jane" }];
  1. Unknown:表示未知类型,类似于 any,但是更加安全,不能随意赋值。
let myUnknown: unknown = "hello";
// 报错:Property 'toUpperCase' does not exist on type 'unknown'.
myUnknown.toUpperCase();