0

0

TypeScript 基础知识:初学者指南 (✅

霞舞

霞舞

发布时间:2025-01-09 10:07:04

|

911人浏览过

|

来源于php中文网

原创

typescript 基础知识:初学者指南 (✅

TypeScript 饱受开发者争议。有人认为它是 JavaScript 自由的绊脚石,也有人将其视为在松散类型代码中的一盏明灯。无论您持何种观点,TypeScript 都将继续存在——深入了解后,您可能会发现它并非负担,而是项目的一大助力。

本系列教程将探索 TypeScript 基础知识,并提供一些技巧和疑难解答提示。

一、简介

什么是 TypeScript?

TypeScript 是 JavaScript 的静态类型超集,可编译成纯 JavaScript。简单来说,它是在 JavaScript 基础上添加了类型检查功能,帮助您尽早发现错误,编写更优质、更易维护的代码。

您可以将 TypeScript 视为一位友好的助手,在您提交代码之前仔细检查您的工作。它能帮助您:

  • 在编码阶段发现错误,而非部署后。
  • 编写更易读、更易懂的代码。
  • 扩展项目规模,同时保持代码结构清晰。

为什么使用 TypeScript?

让我们务实一些。既然 JavaScript 已经能工作,为什么还要关心 TypeScript 呢?

真正的优势:

  1. 尽早捕获错误:避免常见错误,例如将错误的数据类型传递给函数。
function greet(name: string): string {
  return `Hello, ${name}!`;
}
greet(42); // 错误:参数类型“number”无法赋值给参数类型“string”。
  1. 自动完成和代码提示:现代编辑器(如 VS Code)会在您键入时提供丰富的自动完成建议和代码提示。
  2. 代码可扩展性:TypeScript 的类型系统在大型项目中尤其有效,保持代码一致性。
  3. 改进的团队协作:清晰的类型定义使团队成员更容易理解代码。

我发现 TypeScript 在规划大型应用时特别有用;它能清晰地展现我将处理的数据类型以及函数的输入/输出类型。

先决条件

开始之前,请确保您具备基本的 JavaScript 知识,包括:

  • 变量和数据类型(例如,letconst、字符串、数字)
  • 函数
  • 数组和对象

如果您对这些知识点不熟悉,请先回顾一下 JavaScript 基础知识。


二、设置开发环境

安装 TypeScript

TypeScript 需要安装才能使用。只需几个步骤即可准备您的开发环境:

首先,您需要安装 Node.js。安装完成后:

  1. 全局安装 TypeScript:
npm install -g typescript
  1. 验证安装:
tsc --version

设置 VS Code

VS Code 是 TypeScript 开发中最流行的编辑器之一,它提供了一系列功能和扩展,提高开发效率。设置方法如下:

  1. 安装 VS Code:请访问官方网站下载。
  2. 安装以下实用扩展:
    • ESLint:用于检查 TypeScript 代码。
    • Prettier:用于代码格式化。
    • TypeScript Hero:提高开发效率。

创建您的第一个 TypeScript 项目

实践是学习 TypeScript 最佳途径。本节将指导您完成第一个项目的设置,从创建文件到运行代码。

  1. 创建一个新文件夹并导航到其中:
mkdir typescript-starter
cd typescript-starter
  1. 初始化一个新项目:
npm init -y
  1. 添加 TypeScript:
npm install --save-dev typescript
  1. 创建 tsconfig.json 文件:
npx tsc --init
  1. 编写您的第一个 TypeScript 文件:
echo "console.log('Hello, TypeScript!');" > index.ts
  1. 编译并运行:
npx tsc index.ts
node index.js

您刚刚编写并编译了您的第一个 TypeScript 程序!


三、基本类型概述

TypeScript 的强大之处在于其类型系统。让我们探讨一些基本类型:

原始类型

原始类型是 TypeScript 类型系统的基石,包括基本数据类型,如字符串、数字和布尔值。以下是它们的简要介绍:

Perl 基础教程 chm
Perl 基础教程 chm

Perl 基础入门中文教程,chm格式,讲述PERL概述、简单变量、操作符、列表和数组变量、文件读写、模式匹配、控制结构、子程序、关联数组/哈希表、格式化输出、文件系统、引用、面向对象、包和模块等知识点。适合初学者阅读和了解Perl脚本语言。

下载
  1. 字符串
let name: string = "Alice";
  1. 数字
let age: number = 25;
  1. 布尔值
let isStudent: boolean = true;

高级类型

除了原始类型外,TypeScript 还支持更复杂的类型,例如数组、元组和特殊类型(例如 anyunknown)。这些类型使您的代码更灵活,同时保持类型安全。

  1. 数组
let scores: number[] = [90, 85, 88];
  1. 元组
let user: [string, number] = ["Alice", 25];
  1. any(谨慎使用):
let data: any = "可以是任何类型";
  1. unknown(比 any 更安全):
let value: unknown = 10;
  1. void(不返回任何值的函数):
function logMessage(message: string): void {
  console.log(message);
}
  1. nullundefined
let something: null = null;
let nothing: undefined = undefined;

四、使用类型注释

TypeScript 中的类型注释允许开发人员指定变量、参数或函数返回值的类型,确保代码符合定义的结构,从而更容易在开发过程中捕获错误并保持项目的一致性。

在编写代码时,请注意以下集成功能:

基本变量类型

为变量设置类型,确保它们始终被赋予正确的值,并且应用程序的其余部分能正确识别其类型。

let firstName: string = "Alice";
let age: number = 30;

函数参数类型

同样,对于函数,您可以定义参数的类型,以及返回值的类型。

// 注意每个参数的“number”关键字
function add(a: number, b: number): number {
  return a + b;
}

返回类型注释

// 注意结尾处的“string”关键字
function greet(name: string): string {
  return `Hello, ${name}!`;
}

实际示例:用户配置文件

TypeScript 允许您声明自定义类型,以更好地构建代码并强制执行规则。通过使用类型或接口,您可以为对象、函数甚至联合类型定义自定义类型。这不仅使您的代码更健壮,而且还提高了大型项目的可读性和一致性。

interface UserProfile {
  name: string;
  age: number;
  isActive: boolean;
}

const user: UserProfile = {
  name: "Alice",
  age: 25,
  isActive: true,
};

五、接口快速入门

基本语法

TypeScript 中的接口定义了对象的结构,确保它们具有特定的属性和类型。本节将向您展示如何创建和使用接口:

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

const user: User = {
  name: "Bob",
  age: 30,
};

可选属性

有时,并非对象中的所有属性都是必需的。TypeScript 允许您在接口中定义可选属性以优雅地处理这种情况。

interface Product {
  name: string;
  price?: number;
}

const item: Product = { name: "笔记本" };

只读属性

当您想要确保某些值在设置后无法更改时,只读属性非常有用。以下是如何在接口中使用它们:

interface Book {
  readonly title: string;
}

const myBook: Book = { title: "TypeScript 手册" };
// myBook.title = "另一本书名"; // 错误:无法赋值给“title”。

真实示例:API 响应

使用接口来定义 API 响应可以确保您安全有效地处理来自服务器的数据。这是一个实际示例:

interface ApiResponse {
  data: unknown;
  status: number;
}

六、练习项目:构建简单的待办事项列表

实践是掌握 TypeScript 的关键。在此项目中,您将创建一个简单的待办事项列表应用程序,该应用程序将运用您迄今为止学到的知识:

  1. 创建一个 Todo 类型:
interface Todo {
  id: number;
  title: string;
  completed: boolean;
}
  1. 构建一个简单的待办事项数组:
const todos: Todo[] = [
  { id: 1, title: "学习 TypeScript", completed: false },
];
  1. 添加一些功能来添加待办事项并将待办事项标记为已完成:
function markAsComplete(todo: Todo): boolean {
    let bUpdated = false;
    todos.map((td: Todo) => {
        if (td.id === todo.id) {
            bUpdated = true;
            td.completed = true;
        }
    });
    return bUpdated;
}

function addToDo(todo: Todo): boolean {
    try {
        todos.push(todo);
        console.log(`已将 "${todo.title}" 添加到列表!`);
        return true;
    } catch (error) {
        console.error("添加待办事项时出错!", error);
        return false;
    }
}

七、后续步骤

希望您喜欢本教程。我将继续创作更多教程,更深入地探讨 TypeScript 的功能和用例。

  • 下一步:深入探讨 TypeScript 函数和高级类型。
  • 资源
    • TypeScript 官方文档
    • CodeSandbox(用于在线练习 TypeScript)
  • 挑战:为博客文章创建一个 TypeScript 接口,并使用它对博客文章列表进行类型检查。

期待下次与您相见!

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

553

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

374

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

731

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

477

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

990

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

656

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

551

2023.09.20

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

63

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
TypeScript 教程
TypeScript 教程

共19课时 | 2.2万人学习

TypeScript——十天技能课堂
TypeScript——十天技能课堂

共21课时 | 1.1万人学习

TypeScript-45分钟入门
TypeScript-45分钟入门

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号