TypeScript快速学习

71 阅读2分钟

快速学习 TypeScript 的方法需要结合理论学习和实践操作。以下是一个系统化的学习路径,帮助你快速掌握 TypeScript:

1. 基础知识

1.1 理解 TypeScript 的基本概念

  • TypeScript vs JavaScript

    • TypeScript 是 JavaScript 的超集,增加了静态类型检查和一些新特性。
    • TypeScript 代码需要编译为 JavaScript 才能在浏览器或 Node.js 中运行。
  • 安装 TypeScript

    • 使用 npm 安装 TypeScript:
      npm install -g typescript
      

1.2 基本类型

  • 原始类型boolean, number, string, null, undefined, symbol, bigint

  • 数组number[], Array<number>

  • 元组[string, number]

  • 枚举

    enum Color { Red, Green, Blue }
    let c: Color = Color.Green;
    
  • Any 和 Unknown

    • any:可以赋值任何类型。
    • unknown:类似 any,但更安全,需要类型断言或检查。
  • Void 和 Never

    • void:函数没有返回值。
    • never:函数永远不会返回(例如抛出异常)。

1.3 接口和类型别名

  • 接口
    interface Person {
      name: string;
      age: number;
    }
    
  • 类型别名
    type Point = {
      x: number;
      y: number;
    };
    

1.4 函数

  • 函数类型
    function add(x: number, y: number): number {
      return x + y;
    }
    
  • 可选参数和默认参数
    function buildName(firstName: string, lastName?: string): string {
      return `${firstName} ${lastName || ''}`;
    }
    

1.5 类

  • 基本类

    class Animal {
      name: string;
      constructor(name: string) {
        this.name = name;
      }
      move(distance: number = 0) {
        console.log(`${this.name} moved ${distance}m.`);
      }
    }
    
  • 继承

    class Dog extends Animal {
      bark() {
        console.log('Woof! Woof!');
      }
    }
    

2. 高级特性

2.1 泛型

  • 泛型函数

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

    class GenericNumber<T> {
      zeroValue: T;
      add: (x: T, y: T) => T;
    }
    

2.2 类型推断

  • 上下文类型推断
    window.onmousedown = function(mouseEvent) {
      console.log(mouseEvent.button);  // OK
      console.log(mouseEvent.kangaroo);  // Error
    };
    

2.3 类型兼容性

  • 结构类型系统
    interface Named {
      name: string;
    }
    let x: Named;
    let y = { name: 'Alice', location: 'Seattle' };
    x = y;  // OK
    

3. 实践操作

3.1 设置开发环境

  • 安装 VS Code 和 TypeScript 插件

3.2 项目初始化

  • 创建 TypeScript 项目
    mkdir my-project
    cd my-project
    npm init -y
    npm install typescript --save-dev
    npx tsc --init
    

3.3 编写和编译代码

  • 编写 TypeScript 代码: 创建一个 index.ts 文件并编写代码:

    const greeting: string = 'Hello, TypeScript!';
    console.log(greeting);
    
  • 编译代码

    npx tsc
    

3.4 使用 TypeScript 与其他库

  • 安装类型定义文件: 使用 @types 获取库的类型定义:
    npm install @types/node --save-dev
    

4. 学习资源

4.1 官方文档

4.2 在线课程和教程

4.3 实践项目

  • 构建一个简单的应用:如 Todo 应用。
  • 尝试重构现有的 JavaScript 项目:将 JavaScript 项目转换为 TypeScript 项目。

5. 参与社区

  • 加入 TypeScript 社区:参与讨论,解决问题。
  • 阅读和贡献开源项目:在 GitHub 上查找使用 TypeScript 的项目,阅读代码,尝试贡献。

通过以上系统化的学习路径和资源,你可以快速掌握 TypeScript,并在实际项目中应用它。记住,实践是掌握编程语言的关键,多写代码,多尝试不同的项目。