TypeScript入门|青训营笔记

93 阅读6分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 12 天。

前言

TypeScript 简介

TypeScript 是一种由微软开发并维护的开源编程语言,它是 JavaScript 的超集。与 JavaScript 不同,TypeScript 允许开发人员在编写代码时使用静态类型,从而增加代码的可读性和可维护性,并在编译时捕获错误。

TypeScript 的静态类型检查特性使得代码变得更加可预测,提高了代码的可维护性和代码的质量。此外,它支持使用最新的 ECMAScript 规范,包括 ES6、ES7、ES8、ES9 等。

在本文中,我们将学习如何在 TypeScript 中编写代码,包括变量声明、函数、类和模块等。

正文

1. TypeScript 变量声明

在 TypeScript 中,我们可以使用 let、const 和 var 关键字来声明变量。

1.1. let

let 是用来声明一个块级作用域的变量,它的值可以被重新赋值。


let message: string = "Hello, world!";
console.log(message); // 输出 "Hello, world!"

message = "Hello, TypeScript!";
console.log(message); // 输出 "Hello, TypeScript!"

1.2. const

const 也是用来声明一个块级作用域的变量,但是它的值是不可变的。

const pi: number = 3.14159;
console.log(pi); // 输出 3.14159

pi = 3.14; // 报错,因为 pi 是只读的

1.3. var

var 是用来声明一个函数作用域或全局作用域的变量,它的值可以被重新赋值。

var x: number = 10;
console.log(x); // 输出 10

x = 20;
console.log(x); // 输出 20

2. TypeScript 函数

在 TypeScript 中,我们可以使用函数来组织代码和完成某些操作。函数可以带有参数和返回值。

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

const sum: number = add(2, 3);
console.log(sum); // 输出 5

TypeScript 中的函数还支持函数表达式和箭头函数。

2.1. 函数表达式

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

const sum: number = add(2, 3);
console.log(sum); // 输出 5

2.2. 箭头函数

const add = (a: number, b: number): number => a + b;

const sum: number = add(2, 3);
console.log(sum); // 输出 5

3. TypeScript 类

在 TypeScript 中,我们可以使用类来创建对象。类是一种模板,它定义了对象的属性和方法。

class Person {
    firstName: string;
    lastName: string;

    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    getFullName(): string {
        return `${this.firstName} ${this.lastName}`;
}
}

const person = new Person("John", "Doe");
console.log(person.getFullName()); // 输出 "John Doe"

在上面的例子中,我们定义了一个 Person 类,它有两个属性 firstName 和 lastName,还有一个构造函数和一个 getFullName 方法。

3.1. 继承

在 TypeScript 中,我们可以使用 extends 关键字来实现继承。

class Employee extends Person { position: string;

typescript Copy code constructor(firstName: string, lastName: string, position: string) { super(firstName, lastName); this.position = position; }

getPosition(): string { return this.position; } }

const employee = new Employee("John", "Doe", "Developer"); console.log(employee.getFullName()); // 输出 "John Doe" console.log(employee.getPosition()); // 输出 "Developer"

在上面的例子中,我们定义了一个 Employee 类,它继承了 Person 类。Employee 类有一个新的属性 position,还有一个新的方法 getPosition。

4. TypeScript 模块

在 TypeScript 中,我们可以使用模块来组织代码,从而使代码更加可维护和可重用。模块可以包含变量、函数、类等。

// person.ts
export class Person {
firstName: string;
lastName: string;

typescript
Copy code
constructor(firstName: string, lastName: string) {
    this.firstName = firstName;
    this.lastName = lastName;
}

getFullName(): string {
    return `${this.firstName} ${this.lastName}`;
}
}

在上面的例子中,我们定义了一个 Person 类,并使用 export 关键字将它导出。

// employee.ts
import { Person } from "./person";

export class Employee extends Person {
position: string;

typescript
Copy code
constructor(firstName: string, lastName: string, position: string) {
    super(firstName, lastName);
    this.position = position;
}

getPosition(): string {
    return this.position;
}
}

在上面的例子中,我们定义了一个 Employee 类,并使用 import 关键字将 Person 类导入。

5. TypeScript 编译器

TypeScript 提供了一个编译器,它可以将 TypeScript 代码编译成 JavaScript 代码。我们可以使用 npm 命令安装 TypeScript 编译器。

npm install -g typescript

然后,我们可以使用 tsc 命令将 TypeScript 代码编译成 JavaScript 代码。

tsc filename.ts

在上面的例子中,filename.ts 是要编译的 TypeScript 文件名。tsc 命令将会生成一个与文件名相同的 JavaScript 文件。

6. TypeScript 与 React

TypeScript 和 React 可以很好地结合使用,TypeScript 可以提高 React 代码的可读性和可维护性。

下面是一个简单的 TypeScript 和 React 的例子。

import React from "react";

interface Props {
name: string;
}

const Hello: React.FC<Props> = ({ name }) => {
return <div>Hello, {name}!</div>;
};

export default Hello;

在上面的例子中,我们定义了一个名为 Hello 的组件,它接受一个名为 name 的属性。使用 interface 关键字定义 Props 接口来定义属性。使用 React.FC 泛型来定义函数组件。

7. TypeScript 与 Node.js

TypeScript 也可以与 Node.js 一起使用。我们可以使用 TypeScript 编写 Node.js 应用程序,并使用 npm 包管理器安装所需的库。

下面是一个简单的 TypeScript 和 Node.js 的例子。

import * as http from "http";

const server = http.createServer((request, response) => {
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.write("Hello World!");
    response.end();
});

server.listen(3000);
console.log("Server running at http://localhost:3000");

在上面的例子中,我们使用 import * as http from "http" 导入 http 模块。然后,我们创建了一个 HTTP 服务器,并将其绑定到 3000 端口。最后,我们在控制台输出一条消息来指示服务器正在运行。

8. TypeScript 优点

TypeScript 有许多优点,使它成为一种流行的编程语言。

更好的类型支持

TypeScript 提供了更好的类型支持,可以在开发过程中捕获更多的错误。通过 TypeScript 的类型检查,可以在开发过程中更轻松地发现潜在的错误,从而减少调试时间。

更好的代码重构支持

TypeScript 提供了更好的代码重构支持,可以更轻松地重构代码。使用 TypeScript,可以更轻松地更改代码,而不会影响其他部分的代码。

更好的代码维护性

TypeScript 可以提高代码的可读性和可维护性。使用 TypeScript,可以更清晰地定义代码的结构和类型,从而更容易地理解代码。

更好的代码重用性

TypeScript 可以提高代码的重用性。使用 TypeScript,可以更轻松地将代码分解成可重用的组件,并在不同的应用程序中重用这些组件。

总结

TypeScript 是一种流行的编程语言,它可以提高代码的可读性、可维护性和可重用性。TypeScript 提供了更好的类型支持和代码重构支持,可以在开发过程中捕获更多的错误,并更轻松地重构代码。TypeScript 也可以与许多流行的框架和库一起使用,例如 React 和 Node.js。如果你正在寻找一种现代化的编程语言来提高您的开发效率,请考虑学习 TypeScript。

以上是关于 TypeScript 的简单介绍,希望能够帮助了解 TypeScript 的基础知识。如果想深入学习 TypeScript,可以阅读 TypeScript 官方文档,并编写更多的 TypeScript 代码。