TypeScript的一些基础知识

57 阅读3分钟

TypeScript 是什么?

TypeScript 是 JavaScript 的一个超集,它添加了静态类型检查。这意味着你可以在编写代码时定义变量的类型,从而在编译阶段捕获类型错误。TypeScript 编译器会将 TypeScript 代码转换为普通的 JavaScript,以便在浏览器或Node.js中运行。

安装 TypeScript:

安装
npm install -g typescript
检查版本,有没有安装成功
tsc -V

Vue3中在创建项目时,选择配置 TypeScript 作为语言支持即可

TypeScript 基础知识

1. 类型系统: TypeScript 引入了静态类型系统,允许你为变量、函数参数、函数返回值等添加类型注解。这有助于捕获潜在的类型错误,提高代码的稳定性和可维护性。

// 声明一个变量并指定其类型为字符串
let message: string = "Hello, TypeScript";

2. 接口: TypeScript 允许你使用接口来定义对象的结构和类型。接口描述了对象应该具有的属性和方法。

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

const person: Person = { name: "Alice", age: 30 };

3. 类: TypeScript 支持类,你可以使用类来创建对象和定义方法。类可以继承和实现接口。

class Animal {
  name: string;

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

  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

4. 函数: TypeScript 允许你为函数的参数和返回值添加类型注解,帮助你在编写函数时更清晰地定义其行为。

function add(a: number, b: number): number {
  return a + b;
}

5. 泛型: TypeScript 支持泛型,允许你编写可重用的代码,同时保持类型安全。

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

const value = identity<string>("Hello, Generics");

6. 枚举: TypeScript 允许你创建枚举,用于定义一组具名的常量值。

enum Color {
  Red,
  Green,
  Blue
}

const selectedColor: Color = Color.Red;

7. 模块: TypeScript 支持模块化开发,允许你将代码分割成多个文件,并使用 importexport 来组织和共享代码。

// math.ts
export function add(a: number, b: number): number {
  return a + b;
}

// main.ts
import { add } from "./math";

const result = add(2, 3);

8. 类型注解和类型推断: TypeScript 具有类型推断功能,这意味着它可以根据上下文自动推断变量的类型。但你也可以显式地添加类型注解,提供更明确的类型信息。

let num = 42; // TypeScript 自动推断 num 为 number 类型
let str: string = "Hello"; // 显式地指定 str 的类型为 string

TS 常见类型

TypeScript(TS)具有与 JavaScript 相似的基础语法,但添加了类型注解以提供类型检查。以下是 TypeScript 常用的基础类型:

  1. 布尔类型(Boolean) :表示逻辑值 truefalse

    typescriptCopy code
    let isDone: boolean = false;
    
  2. 数字类型(Number) :表示整数或浮点数值。

    typescriptCopy code
    let decimal: number = 6;
    let pi: number = 3.14;
    
  3. 字符串类型(String) :表示文本字符串。

    typescriptCopy code
    let name: string = "Alice";
    
  4. 数组类型(Array) :表示一个元素的集合。

    typescriptCopy code
    let numbers: number[] = [1, 2, 3];
    let names: string[] = ["Alice", "Bob", "Charlie"];
    
  5. 元组类型(Tuple) :表示一个已知长度和固定类型的数组。

    typescriptCopy code
    let person: [string, number] = ["Alice", 30];
    
  6. 枚举类型(Enum) :表示一组命名的常数值。

    typescriptCopy code
    enum Color {
      Red,
      Green,
      Blue
    }
    let favoriteColor: Color = Color.Blue;
    
  7. Any 类型(Any) :表示任意类型,取消类型检查。

    typescriptCopy code
    let data: any = 42;
    data = "Hello";
    
  8. Void 类型(Void) :表示没有返回值的函数的返回类型。

    typescriptCopy code
    function logMessage(): void {
      console.log("This is a message");
    }
    
  9. Null 和 Undefined 类型(Null 和 Undefined) :表示 null 和 undefined 值。

    typescriptCopy code
    let n: null = null;
    let u: undefined = undefined;
    
  10. Never 类型(Never) :表示永远不会返回值的函数的返回类型,或抛出异常的函数的返回类型。

    typescriptCopy code
    function throwError(message: string): never {
      throw new Error(message);
    }
    
  11. Object 类型(Object) :表示非原始类型的类型,也不包括 null 和 undefined。

    typescriptCopy code
    let obj: object = { key: "value" };
    

了解更多关于 TypeScript 的类型和高级类型,请参阅 TypeScript 官方文档