求知久久-诱人的 TypeScript 视频教程

145 阅读5分钟

1.jpg 求知久久-诱人的 TypeScript 视频教程---<<<下栽科>>>:97java.xyz/4701/

0基础入门TS!求知久久精神:7天吃透TypeScript

学习前寄语:
TypeScript 不是一门全新的语言,而是 JavaScript 的 超集。你可以把它理解为“带类型的 JavaScript”。它的最终目的是让你写出更健壮、更易维护的代码。抱着“给JS加类型”这个核心思想去学,会轻松很多。


七日攻坚学习计划

Day 1:初识TypeScript – 为什么是它?

目标:  理解TS的价值,完成环境搭建,并运行第一个TS程序。

  1. 为什么选择TypeScript?

    • 类型安全:  在代码运行前就能发现潜在错误,比如将字符串误当数字使用。
    • 更好的可读性和可维护性:  类型就是最好的注释。
    • 强大的IDE支持:  获得更智能的代码补全、接口提示和重构功能。
    • 渐进式采用:  你可以在现有的JS项目中逐步引入TS。
  2. 环境搭建

    • 安装 Node.js。
    • 通过 npm 全局安装 TypeScript:npm install -g typescript
    • 创建一个 hello.ts 文件。
    • 编写代码:let message: string = "Hello, TypeScript!"; console.log(message);
    • 编译它:  在终端运行 tsc hello.ts,这会生成一个 hello.js 文件。
    • 用 node hello.js 运行JS文件。
  3. 核心概念:

    • 类型注解:  : type 的语法,如 let age: number = 25;

Day 2:掌握基础类型 – 构建程序的砖块

目标:  熟练掌握TS中的所有基础类型。

  1. 原始类型:

    • booleanlet isDone: boolean = false;
    • numberlet decimal: number = 6;
    • stringlet color: string = "blue";
    • null 和 undefined: 它们是所有类型的子类型。
  2. 数组类型:

    • let list: number[] = [1, 2, 3];
    • let list: Array<number> = [1, 2, 3]; (泛型语法)
  3. 特殊类型:

    • Any:  任意类型,相当于回到JS,应尽量避免使用。let notSure: any = 4;

    • Void:  通常用于表示函数没有返回值。function warnUser(): void { console.log("warning"); }

    • Tuple (元组):  表示一个已知元素数量和类型的数组。let x: [string, number] = [“hello”, 10];

    • Enum (枚举):  为一组数值赋予友好的名字。

      typescript

      复制下载

      enum Color {Red, Green, Blue}
      let c: Color = Color.Green;
      

Day 3:深入函数与接口 – 定义契约

目标:  学会如何为函数和对象定义“形状”。

  1. 函数类型:

    • 为函数添加类型:  包括参数类型和返回值类型。

      typescript

      复制下载

      function add(x: number, y: number): number {
          return x + y;
      }
      
    • 可选参数和默认参数:  function buildName(firstName: string, lastName?: string) { ... }

    • 箭头函数:  const myAdd = (x: number, y: number): number => x + y;

  2. 接口 – Interface:

    • 描述对象形状:  这是TS的核心魅力所在。

      typescript

      复制下载

      interface Person {
          name: string;
          age: number;
          readonly id: number; // 只读属性
          nickname?: string; // 可选属性
      }
      let tom: Person = { name: "Tom", age: 25, id: 89757 };
      
    • 描述函数类型:  接口也能描述函数。

      typescript

      复制下载

      interface SearchFunc {
          (source: string, subString: string): boolean;
      }
      

Day 4:拥抱类与面向对象 – 更现代的JS

目标:  理解TS如何增强ES6的类。

  1. 类的基本使用:

    typescript

    复制下载

    class Animal {
        name: string;
        constructor(theName: string) { this.name = theName; }
        move(distanceInMeters: number = 0) {
            console.log(`${this.name} moved ${distanceInMeters}m.`);
        }
    }
    
  2. 访问修饰符:

    • public: (默认) 在任何地方都可以访问。
    • private: 只能在类内部访问。
    • protected: 可以在类及其子类中访问。
  3. 继承:

    typescript

    复制下载

    class Dog extends Animal {
        constructor(name: string) { super(name); }
        move(distance = 10) { // 重写方法
            console.log("Running...");
            super.move(distance);
        }
    }
    

Day 5:解锁泛型 – 创造可重用的组件

目标:  理解泛型,让代码组件可以支持多种类型。

  1. 泛型是什么?

    • 在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
  2. 泛型函数:

    typescript

    复制下载

    function identity<T>(arg: T): T {
        return arg;
    }
    // 使用
    let output = identity<string>("myString"); // 类型是string
    let output2 = identity("myString"); // 更常见的类型推断
    
  3. 泛型接口与泛型类:

    typescript

    复制下载

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

Day 6:高级类型与类型操纵 – 成为类型高手

目标:  学习联合类型、类型守卫等高级概念,让类型系统更灵活。

  1. 联合类型:  let padding: string | number;

  2. 类型别名:  type Name = string; type NameResolver = () => string;

  3. 类型断言:  告诉编译器“你相信我,我知道这是什么类型”。

    • 两种语法:<string>someValue 或 someValue as string
  4. 类型守卫:  在条件分支中缩小类型的范围。

    • typeofinstanceofin 操作符。
    • 自定义类型守卫:  function isFish(pet: Fish | Bird): pet is Fish { ... }

Day 7:工程实战与配置 – 学以致用

目标:  了解如何在真实项目中使用TS,并理解 tsconfig.json 配置文件。

  1. tsconfig.json 文件:

    • 这是TS项目的核心配置文件。

    • 重要配置项:

      • target: 编译成哪个版本的JS (如 es5es2015)。
      • module: 模块系统 (如 commonjses2015)。
      • outDir: 指定输出目录。
      • strict: 开启所有严格的类型检查选项(强烈推荐)。
      • include / exclude: 指定要编译的文件。
  2. 与打包工具集成:

    • Webpack:  使用 ts-loader
    • Vite:  天然支持TS,开箱即用。
  3. 在React/Vue中使用TS:

    • React:  使用 .tsx 文件,为组件的 props 和 state 定义类型。
    • Vue:  使用 Vue 3 和 Composition API 与 <script setup lang="ts"> 能获得极佳的TS支持。

总结与建议

  • 多写多练:  光看视频不写代码是学不会的。把教程里的每个例子都亲手敲一遍,并尝试修改它们。
  • 拥抱错误:  初期会遇到大量的类型错误,不要灰心。仔细阅读错误信息,这是TS在帮你,是学习过程的一部分。
  • 循序渐进:  不必强求第一天就理解所有高级类型。先会用基础类型,再慢慢深入。
  • 求知久久教程的优势:  这套教程正是遵循了这种由浅入深、实战驱动的路径,非常适合零基础的同学建立信心。