返回

TypeScript 官方手册翻译计划【一】:基础

前端

TypeScript: 超越 JavaScript 的静态类型

简介

TypeScript 是一种流行的编程语言,建立在 JavaScript 之上,为其引入了一个静态类型系统。它允许开发者在编写代码时定义变量和函数的类型,从而提高代码的可靠性和可维护性。

变量类型

TypeScript 中的变量类型可分为基本类型和引用类型。基本类型 包括布尔型(boolean)、数字型(number)、字符串型(string)、空型(void)、undefined 型和 null 型。引用类型 包括对象型(object)、数组型(array)和函数型(function)。

示例:

// 布尔型
let isTrue: boolean = true;

// 数字型
let age: number = 25;

// 字符串型
let name: string = "John Doe";

// 对象型
let person: object = {
  name: "Jane Doe",
  age: 30
};

常量类型

常量的值一旦被赋值就不能被修改。使用 const 声明常量。

示例:

const PI: number = 3.14159;

类型转换

TypeScript 支持两种类型的转换:

  • 显式类型转换: 使用 as<> 运算符显式地将一种类型的值转换为另一种类型的值。
  • 隐式类型转换: TypeScript 编译器自动将一种类型的值转换为另一种类型的值。

示例:

// 显式类型转换
let ageString: string = age.toString();

// 隐式类型转换
let totalCost = age + price; // 将 age(number)隐式转换为 string

接口类型

接口定义了一组属性及其类型。用于对对象进行类型检查。

示例:

interface Person {
  name: string;
  age: number;
}

let person: Person = {
  name: "John Doe",
  age: 25
};

联合类型

联合类型定义了一组类型,变量的值可以是这些类型中的任何一种。

示例:

type PersonOrNumber = Person | number;

let personOrNumber: PersonOrNumber = {
  name: "John Doe",
  age: 25
};

// 或者

personOrNumber = 25;

枚举类型

枚举类型定义了一组常量,这些常量具有相同的类型。

示例:

enum Colors {
  Red,
  Green,
  Blue
}

let color: Colors = Colors.Red;

类型别名

类型别名可以为一种类型定义一个新的名称。

示例:

type MyString = string;

let myString: MyString = "Hello World";

可空类型

可空类型表示一种类型的值可以是该类型的值或者 nullundefined

示例:

type OptionalString = string | null | undefined;

let optionalString: OptionalString = null;

元组类型

元组类型定义了一个固定长度的元素列表,每个元素都有自己的类型。

示例:

type PersonTuple = [string, number];

let personTuple: PersonTuple = ["John Doe", 25];

数组类型

数组类型定义了一个长度可变的元素列表,每个元素都有自己的类型。

示例:

type NumberArray = number[];

let numberArray: NumberArray = [1, 2, 3];

结论

TypeScript 是一种强大的编程语言,它扩展了 JavaScript 的功能,使其具有静态类型检查。它可以显著提高代码的可靠性、可维护性和可读性。通过利用 TypeScript 的各种类型系统功能,开发者可以编写更高质量、更健壮的应用程序。

常见问题解答

  1. TypeScript 和 JavaScript 有什么区别?
    TypeScript 是 JavaScript 的超集,这意味着它支持 JavaScript 的所有特性,但还添加了一个静态类型系统。

  2. 为什么我应该使用 TypeScript?
    TypeScript 提供了更强的类型检查,可以帮助开发者发现错误,从而提高代码质量和可靠性。

  3. TypeScript 编译器会执行什么操作?
    TypeScript 编译器将 TypeScript 代码转换为纯 JavaScript 代码,该代码可以在任何支持 JavaScript 的环境中运行。

  4. TypeScript 可以在哪些应用程序中使用?
    TypeScript 广泛用于 Web 开发、移动开发、桌面开发和云计算。

  5. 学习 TypeScript 困难吗?
    对于具有 JavaScript 经验的开发者来说,学习 TypeScript 并不困难。但对于新手来说,理解 TypeScript 的类型系统可能需要一些时间。