📜  typescript 通用字典 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:48:05.620000             🧑  作者: Mango

TypeScript 通用字典

简介

TypeScript 是一种开源的编程语言,它是 JavaScript 的一个超集,支持类型、类、接口等面向对象的特性,同时保留了 JavaScript 的灵活性和动态性。TypeScript 可以在编译时进行类型检查,提高代码的可读性、可维护性和健壮性。

本通用字典旨在帮助开发者更好地理解和应用 TypeScript 中的概念和术语。涵盖了常见的关键字、类型和语法,以及一些高级特性和最佳实践。

关键字

以下是 TypeScript 中的一些关键字,它们有着特定的含义和语义,对于理解 TypeScript 程序的结构和逻辑非常重要:

  • let:用于声明块级作用域的变量,常用于循环中。
  • const:用于声明常量,一旦赋值便不能修改。
  • var:声明全局或函数作用域的变量。
  • function:定义函数的关键字。
  • class:定义类的关键字。
  • interface:定义接口的关键字。
  • enum:定义枚举的关键字。
  • type:定义类型别名的关键字。
  • this:表示当前对象。
  • super:表示类的父类。
类型

TypeScript 支持多种类型,包括基本类型和引用类型。以下是常见的 TypeScript 类型:

  • number:表示数字类型。
  • string:表示字符串类型。
  • boolean:表示布尔类型。
  • any:表示任意类型,可以赋值为任何类型。
  • void:表示没有返回值的函数类型。
  • undefined:表示未定义的类型,变量没有赋值时默认为 undefined。
  • null:表示空值的类型,可以赋值为 null。
  • object:表示对象类型。
  • Array:表示数组类型。
  • Tuple:表示元组类型,可以指定数组中不同类型的元素。
  • Union:联合类型,表示多个类型中的一种。
语法

TypeScript 语法和 JavaScript 类似,但也存在一些差异和扩展。以下是一些常见的 TypeScript 语法:

类的定义
class MyClass {
  private _name: string; // 私有属性
  constructor(name: string) {
    this._name = name;
  }
  get name(): string {
    return this._name;
  }
  set name(value: string) {
    this._name = value;
  }
  public sayHello() {
    console.log(`Hello, ${this._name}`);
  }
}
接口的定义
interface Person {
  name: string;
  age: number;
}

function printPerson(person: Person) {
  console.log(person.name, person.age);
}
枚举的定义
enum Color {
  Red,
  Green,
  Blue,
}

let c1: Color = Color.Red;
let c2: Color = Color.Green;
let c3: Color = Color.Blue;
类型别名的定义
type Point = {
  x: number;
  y: number;
};

function distance(p1: Point, p2: Point): number {
  return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
}
高级特性

TypeScript 还提供了许多高级特性,例如泛型、装饰器、命名空间等。以下是一些常见的 TypeScript 高级特性:

泛型
function identity<T>(arg: T): T {
  return arg;
}

let output1 = identity<string>("Hello");
let output2 = identity<number>(42);
装饰器
function log(target: any, name: string, descriptor: PropertyDescriptor) {
  let originalMethod = descriptor.value;
  descriptor.value = function(...args: any[]) {
    console.log(`calling ${name} with args: ${args}`);
    let result = originalMethod.apply(this, args);
    console.log(`result: ${result}`);
    return result;
  };
  return descriptor;
}

class MyClass {
  @log
  public sayHello(name: string): string {
    return `Hello, ${name}!`;
  }
}
命名空间
namespace MyNamespace {
  export const PI = 3.14159;
  export function add(x: number, y: number) {
    return x + y;
  }
}

console.log(MyNamespace.PI);
console.log(MyNamespace.add(1, 2));
最佳实践

以下是一些在使用 TypeScript 时的最佳实践:

  • 使用类型注解,可以在编译时进行类型检查。
  • 使用 interface 来定义接口,以提高代码的可读性和可维护性。
  • 使用 class 来定义类,以实现面向对象的编程思想。
  • 尽量使用 let 和 const 来声明变量,以避免变量提升和作用域污染。
  • 使用泛型来写更加灵活的代码。
  • 使用装饰器来增强类的功能和行为。
结语

TypeScript 是一种强类型的编程语言,它提供了更加严谨和安全的开发体验。通过了解和掌握 TypeScript 中的关键字、类型和语法,我们能够更好地理解和应用 TypeScript,写出更加健壮、可维护、可读性高的代码。