TypeScript 教程,学习笔记

        在现代前端开发中,TypeScript 已逐渐成为一个标准的开发语言。TypeScript 是 JavaScript 的一个超集,它能够添加静态类型检查到这门语言。这样不仅能够帮助开发者在代码执行之前就发现潜在错误,还能提供更丰富的编辑器支持,如自动补全和接口文档。

TypeScript 简介

        TypeScript 最早由微软开发,它结合了 JavaScript 的灵活性与强类型语言的优点。通过添加类型注解,TypeScript 提供了静态类型检查,这使得在编译阶段就可以发现很多潜在问题,而不是在运行时才暴露出来。TypeScript 还兼容所有现有的 JavaScript 代码,并支持最新的 ECMAScript 标准。

安装 TypeScript

安装 TypeScript 的最简单方式是通过npm(Node.js 的包管理器):

npm install -g typescript

这条命令会全局安装 TypeScript 编译器 tsc。安装后,您可以通过在终端运行 tsc -v 来确认是否安装成功。

基础类型

在 TypeScript 中声明变量时,您可以指明其类型:

let message: string = "Hello, TypeScript!";
let count: number = 100;
let isActive: boolean = true;

如果尝试将不匹配的类型赋值给这些变量,TypeScript 编译器将提示错误:

message = 123; // Error: Type 'number' is not assignable to type 'string'.

这个类型检查过程是在编码阶段进行的,大大降低了运行时错误发生的可能性。

接口(Interfaces)

TypeScript 的一个核心原则是对值所具有的结构进行类型检查。 接口的作用是为这些类型命名和为你的代码或第三方代码定义契约。

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

function greet(user: User) {
  console.log(`Hello, ${user.name}!`);
}

greet({ name: "Alice", age: 25 }); // 正确
greet({ name: "Bob", age: "twenty-five" }); // 错误: 对象文字只能指定已知属性,并且“age”上的“string”类型不能分配给“number”类型“age”。

类(Classes)

TypeScript 支持 JavaScript 的新特性,如基于类的面向对象编程。以下是一个简单的类的例子:

class Greeter {
  greeting: string;
  
  constructor(message: string) {
    this.greeting = message;
  }
  
  greet() {
    return "Hello, " + this.greeting;
  }
}

let greeter = new Greeter("world");
console.log(greeter.greet()); // 输出: Hello, world

这里的 Greeter 类有三个部分:一个叫做 greeting 的字段,一个构造函数和一个 greet 方法。

模块(Modules)

随着应用的增长,我们需要一种将代码分割成可重用组件的方式。TypeScript 支持模块化代码,允许我们导入其他文件中的类、接口、函数等。

// mathUtils.ts
export function add(x: number, y: number): number {
  return x + y;
}

// main.ts
import { add } from './mathUtils';

console.log(add(1, 2)); // 输出:3

在这个例子中,我们创建了一个包含 add 函数的模块,并在另一个文件中导入它。

泛型(Generics)

TypeScript 的泛型机制允许我们在定义函数、接口或类的时候不预先指定具体的类型,而是在使用的时候再指定类型。下面是一个使用泛型的例子:

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

let output = identity<string>("myString");  // type of output will be 'string'
console.log(output); // 输出:myString

高级类型 & 实用程序类型

        TypeScript 提供了高级类型功能,比如交叉类型、联合类型和索引类型。这些工具可以帮助我们简化和提高代码的复用性。

实用程序类型则是 TypeScript 内置的一组泛型接口和类型别名,它们提供了一些常见的类型转换。

开始使用 TypeScript

现在,让我们开始一个小的 TypeScript 项目。我们将初始化一个项目,编写一些 TypeScript 代码,并编译它。

mkdir ts-project && cd ts-project
npm init -y
npm install typescript --save-dev
npx tsc --init

我们创建了一个项目目录,初始化了 npm,添加了 TypeScript 作为依赖,并生成了一个默认的 tsconfig.json 文件。现在我们可以开始在这个项目中撰写 TypeScript 代码了。

创建一个文件 hello.ts:

function sayHello(person: string) {
  return "Hello, " + person;
}

let user = "Jane User";
console.log(sayHello(user));

然后编译 TypeScript 文件:

npx tsc

这会生成一个与 TS 文件同名的 JavaScript 文件,我们可以在 Node.js 或浏览器中运行它。

本文仅为 TypeScript 学习笔记的入门介绍,实际上 TypeScript 的功能十分强大且复杂,值得深入学习和探索。希望本文能为你的 TypeScript 学习之旅打下良好的基础。。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么是快乐代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值