第一章:TypeScript 初探
1.1 什么是 TypeScript?
TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,为 JavaScript 添加了可选的静态类型和基于类的面向对象编程。TypeScript 可以编译成纯 JavaScript,然后运行在任意 JavaScript 环境中。
1.2 TypeScript 的优势
- 类型安全:通过静态类型检查,可以在编译阶段捕获错误,提高代码质量。
- 更好的工具支持:TypeScript 可以与各种 IDE 和编辑器无缝集成,提供智能提示、代码补全等功能。
- 大型项目友好:TypeScript 适合大型项目,因为它可以更好地管理代码结构和复杂度。
1.3 TypeScript 的安装
npm install -g typescript
1.4 编写第一个 TypeScript 程序
创建一个名为 hello.ts 的文件,并写入以下代码:
function greet(name: string): string {
return `Hello, ${name}!`;
}
console.log(greet("World"));
使用 TypeScript 编译器编译代码:
tsc hello.ts
运行编译后的 JavaScript 文件:
node hello.js
第二章:基础类型与变量
2.1 基础类型
TypeScript 提供了多种基础类型,如 number、string、boolean、void、null 和 undefined。
2.2 变量声明
TypeScript 支持多种变量声明方式,包括 var、let 和 const。
let age: number = 30;
const name: string = "Alice";
2.3 接口(Interfaces)
接口用于定义对象的形状,可以描述对象的属性和方法。
interface Person {
name: string;
age: number;
}
function greet(person: Person): void {
console.log(`Hello, ${person.name}!`);
}
const alice: Person = { name: "Alice", age: 30 };
greet(alice);
第三章:高级类型
3.1 泛型(Generics)
泛型允许在定义函数、接口和类时使用类型参数。
function identity<T>(arg: T): T {
return arg;
}
const output = identity<string>("myString"); // 类型为 string
3.2 类型别名(Type Aliases)
类型别名提供了一种给类型命名的方式。
type StringArray = string[];
3.3 联合类型(Union Types)
联合类型表示变量可以是几种类型中的一种。
let input: string | number;
input = 100; // OK
input = "100"; // OK
第四章:类与模块
4.1 类(Classes)
TypeScript 支持面向对象的编程,类用于创建对象。
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return `Hello, ${this.greeting}!`;
}
}
const greeter = new Greeter("world");
console.log(greeter.greet());
4.2 模块(Modules)
模块是 TypeScript 的一个核心特性,它允许将代码组织成独立的单元。
// greeter.ts
export class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return `Hello, ${this.greeting}!`;
}
}
// app.ts
import { Greeter } from "./greeter";
const greeter = new Greeter("world");
console.log(greeter.greet());
使用 TypeScript 编译器编译模块:
tsc app.ts
运行编译后的 JavaScript 文件:
node app.js
第五章:TypeScript 框架
5.1 Angular
Angular 是一个基于 TypeScript 的开源 Web 应用程序框架。
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<h1>Welcome to Angular!</h1>`
})
export class AppComponent {
}
5.2 React
React 是一个用于构建用户界面的 JavaScript 库,可以使用 TypeScript。
import React from 'react';
const HelloMessage: React.FC = () => <h1>Hello, TypeScript!</h1>;
export default HelloMessage;
5.3 Vue
Vue 是一个用于构建用户界面的渐进式 JavaScript 框架,可以使用 TypeScript。
<template>
<div>Hello, TypeScript!</div>
</template>
<script lang="ts">
export default {
name: 'HelloMessage'
}
</script>
第六章:TypeScript 进阶
6.1 高级类型技巧
TypeScript 提供了许多高级类型技巧,如映射类型、条件类型等。
type MapKeys<T> = {
[K in keyof T]: T[K]
};
type StringArray = MapKeys<string[]>;
6.2 装饰器(Decorators)
装饰器是 TypeScript 的一个高级特性,用于在运行时添加或修改类的行为。
function log(target: Function) {
console.log(`Method ${target.name} called`);
}
class MyClass {
@log
method() {
// ...
}
}
第七章:总结
TypeScript 是一种强大的编程语言,它可以帮助开发者编写更安全、更高效的代码。通过本指南,你从 TypeScript 的基础知识开始,逐步了解了 TypeScript 框架的应用,以及一些高级技巧。现在,你已经准备好开始使用 TypeScript 开发自己的项目了!
