TypeScript 是一种由微软开发并维护的开源编程语言,它是 JavaScript 的一个超集,为 JavaScript 添加了可选的静态类型和基于类的面向对象编程。本文将详细介绍 TypeScript 的基本概念、语法和常用功能,并通过代码示例帮助读者快速上手。
一、环境搭建
首先,我们需要安装 Node.js 和 npm。然后,通过运行以下命令安装 TypeScript:
npm install -g typescript
二、基本概念
- 变量声明和赋值
在 TypeScript 中,我们可以使用 let
、const
和 var
关键字声明变量。例如:
let name: string = "张三"; // 使用 let 声明一个名为 name 的字符串变量,并赋值为 "张三"
const age: number = 25; // 使用 const 声明一个名为 age 的数字变量,并赋值为 25
var isStudent: boolean = true; // 使用 var 声明一个名为 isStudent 的布尔变量,并赋值为 true
- 函数定义和调用
在 TypeScript 中,我们可以使用 function
关键字定义函数。例如:
function greet(name: string): string {
return `Hello, ${name}!`;
}
console.log(greet("李四")); // 输出 "Hello, 李四!"
- 类和接口
TypeScript 支持基于类的面向对象编程。我们可以使用 class
关键字定义类,并使用 interface
关键字定义接口。例如:
interface Person {
name: string;
age: number;
}
class Student implements Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
const student = new Student("王五", 22);
console.log(student.name); // 输出 "王五"
console.log(student.age); // 输出 22
- 泛型和约束
TypeScript 支持泛型编程,允许我们编写适用于多种类型的代码。我们还可以使用约束来限制泛型的类型。例如:
function identity<T>(arg: T): T {
return arg;
}
const output1 = identity<string>("myString"); // 类型为 string
const output2 = identity<number>(42); // 类型为 number
- 模块和命名空间
TypeScript 支持模块化编程,我们可以使用 import
和 export
关键字导入和导出模块。此外,我们还可以使用命名空间来组织代码。例如:
// math.ts
export function add(a: number, b: number): number {
return a + b;
}
export function multiply(a: number, b: number): number {
return a * b;
}
// main.ts
import { add, multiply } from "./math"; // 导入 math.ts 中的 add 和 multiply 函数
console.log(add(1, 2)); // 输出 3
console.log(multiply(3, 4)); // 输出 12
以下是使用TypeScript编写的简单应用实例计数器,它可以增加和减少计数值。
首先,我们需要创建一个TypeScript文件,例如`counter.ts`,并在其中定义一个接口`Counter`和一个类`CounterImpl`。
```typescript
// counter.ts
interface Counter {
increase(): void;
decrease(): void;
getValue(): number;
}
class CounterImpl implements Counter {
private count: number = 0;
increase(): void {
this.count++;
}
decrease(): void {
if (this.count > 0) {
this.count--;
}
}
getValue(): number {
return this.count;
}
}
接下来,我们可以在另一个文件中导入Counter
接口和CounterImpl
类,并使用它们来创建一个简单的计数器应用。
// app.ts
import { Counter } from './counter';
const counter: Counter = new CounterImpl();
function main() {
console.log('当前计数值:', counter.getValue());
counter.increase();
console.log('增加后计数值:', counter.getValue());
counter.decrease();
console.log('减少后计数值:', counter.getValue());
}
main();
最后,我们需要编译这两个TypeScript文件。在命令行中,进入到包含这两个文件的目录,然后运行以下命令:
tsc counter.ts app.ts
这将生成两个JavaScript文件:counter.js
和app.js
。现在,我们可以运行app.js
文件来查看计数器应用的输出。
node app.js
输出结果如下:
当前计数值: 0
增加后计数值: 1
减少后计数值: 0