跳到主要内容

基本语法

- · -

这一节是 Typescript 的基础知识

1. 变量声明与类型注解

介绍如何声明变量并为其添加类型注解,以及基本的数据类型和类型推断。 示例代码:

let name: string = "John";
let age: number = 25;
let isStudent: boolean = true;
let hobbies: string[] = ["reading", "running", "cooking"];

2. 函数与箭头函数

讲解如何定义函数和箭头函数表达式,并介绍参数类型注解和返回值类型注解。 示例代码:

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

const multiply = (a: number, b: number): number => {
return a * b;
};

3. 类型与接口

介绍如何定义类和接口,并讲解类的继承和接口的实现。

3.1 使用接口声明属性和方法

可以使用 interface 关键字,来声明一个接口,接口中可以包含属性和方法。

interface Person {
readonly name: string;
readonly age: number;
greet(): void;
}

class Student implements Person {
readonly name: string;
readonly age: number;

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

greet(): void {
console.log(`大家好,我是 ${this.name}. 我 ${this.age} 岁了`);
}
}

class Student2 implements Person {
constructor(readonly name: string, readonly age: number) {
this.name = name;
this.age = age;
}

greet(): void {
console.log(`大家好,我是 ${this.name}. 我 ${this.age} 岁了`);
}
}

const student: Person = {
name: "何方",
age: 10,
greet() {
console.log("你好");
},
};

3.2 使用接口声明函数

interface 关键字还可以用来声明函数。

interface Sum {
(a: number, b: number): number;
}

const sum: Sum = (a, b) => a + b;

3.3 使用 type 声明类型

type 关键字可以用来声明类型别名。

type Person = {
name: string;
age: number;
};

const person: Person = {
name: "何方",
age: 25,
};

3.4 可选属性

接口和 type 中的属性可以使用 ? 来表示可选属性。

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

type PersonType = {
name: string;
age?: number;
};

const person: Person = {
name: "何方",
};

const person2: PersonType = {
name: "何方",
};

4. 命名空间与模块

介绍如何使用命名空间和模块来组织和管理代码。 示例代码:

// app.ts
namespace App {
export const version = "1.0.0";

export function sayHello(name: string): string {
return `Hello, ${name}!`;
}
}

module AppModule {
export const version = "1.2.0";
export function func(): string {
return "xxx";
}
}

console.log(App.version);
console.log(App.sayHello());
console.log(AppModule.version);
console.log(AppModule.func());

5. 数组与元组

讲解如何声明和操作数组,以及元组的基本用法。

let numbers: number[] = [1, 2, 3, 4, 5];

let person: [string, number] = ["John", 25];

6. 枚举

讲解如何定义枚举类型和联合类型,以及如何使用它们。 示例代码:

enum Color {
Red = "RED",
Green = "GREEN",
Blue = "BLUE",
}

type Shape = "circle" | "square" | "triangle";

let color: Color = Color.Red;
let shape: Shape = "circle";

希望以上示例代码和对你有帮助!如果需要进一步了解每个章节的详细内容,你可以点击对应的,它们将带你进入 TypeScript 官方文档的相关部分。


7. any, never, unknown 类型

7.1 any

any 类型可以表示任意类型,当你不知道变量的类型时,可以使用 any 类型。

let a: any = 1;
a = "hello";
a = true;

7.2 never

never 类型表示永远不会发生的类型,通常用于函数的返回值类型,当函数抛出异常或者永远不会返回时,可以使用 never 类型。

function throwError(): never {
throw new Error("error");
}

function infiniteLoop(): never {
while (true) {}
}

7.3 unknown

unknown 类型表示未知类型,它与 any 类型的区别在于,unknown 类型的变量不能直接赋值给其他类型的变量,需要先进行类型判断。

let a: unknown = 1;
let b: number = a; // Error: Type 'unknown' is not assignable to type 'number'.

if (typeof a === "number") {
let c: number = a;
}

参考文档

  1. 变量与类型注解
  2. 函数与箭头函数
  3. 类与接口
  4. 命名空间与模块
  5. 枚举与联合类型
  6. 数组与元组
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/typescript/基本语法