📜  typescript 静态示例 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:35:24.716000             🧑  作者: Mango

TypeScript 简介

TypeScript 是一种在 JavaScript 基础上开发的编程语言。它引入了静态类型检查,并且扩展了 JavaScript 的基础,增加了类、接口和模块等特性。TypeScript 能帮助开发者在编码过程中提前发现并解决错误,可以让代码更加稳定,易于维护。

静态示例

下面是一个简单的 TypeScript 示例:

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

function greet(person: Person): void {
  console.log(`Hello, ${person.name}! You are ${person.age} years old.`);
}

let person = {
  name: 'Alice',
  age: 30
};

greet(person);

以上代码定义了一个接口 Person 和一个函数 greet。函数 greet 接受一个类型为 Person 的参数,并输出问候语。最后我们定义了一个 person 对象,传给 greet 函数。

类型检查

在 TypeScript 中,我们可以定义变量的类型,并在编码过程中静态检查类型是否匹配。例如,我们可以将 person 对象的 age 属性改为字符串类型:

let person = {
  name: 'Alice',
  age: '30'
};

这时编译器就会报错:

error TS2322: Type 'string' is not assignable to type 'number'.

这样的检查能够帮助开发者避免一些常见的类型错误。

类和继承

TypeScript 中还支持类和继承。例如,我们定义一个 Person 类:

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet(): void {
    console.log(`Hello, ${this.name}! You are ${this.age} years old.`);
  }
}

let person = new Person('Alice', 30);
person.greet();

在这个例子中,我们定义了一个 Person 类,包括属性 nameage,以及一个方法 greet。使用 new 关键字可以创建一个 Person 对象,并调用 greet 方法。

模块和命名空间

在 TypeScript 中,我们可以使用模块和命名空间来将代码组织为逻辑单元。例如,我们在一个模块中定义了一个类 Person

export class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet(): void {
    console.log(`Hello, ${this.name}! You are ${this.age} years old.`);
  }
}

然后在另一个模块中使用它:

import { Person } from './person';

let person = new Person('Alice', 30);
person.greet();

这样就能方便地复用代码,减少冗余的代码。

总结

以上只是 TypeScript 的一些基础概念和简单示例,它还包括更多的特性和应用场景。通过学习 TypeScript,我们可以提升代码的质量和开发效率,是现代 Web 开发中不可或缺的一部分。