TypeScript 是 JavaScript 的一个超集,它添加了静态类型系统和面向对象编程的概念。下面是一个简要的 TypeScript 学习笔记,帮助你入门和理解其核心概念。
1. 安装 TypeScript
你可以通过 npm(Node Package Manager)来安装 TypeScript:
npm install -g typescript
2. 基础类型
- Number:用于表示数字。
- String:用于表示文本。
- Boolean:用于表示逻辑值:
true
或false
。 - Array:用于表示数组。例如:
let numbers: number[] = [1, 2, 3];
- Tuple:元组类型允许表示一个已知元素数量和类型的数组。例如:
let x: [string, number] = ['hello', 10];
- Enum:枚举类型允许定义一个数值集合。
3. 变量声明
在 TypeScript 中,你可以使用 let
、const
或 var
来声明变量,但推荐使用 let
和 const
,因为它们提供了块级作用域。
let name: string = 'Alice';
const age: number = 30; // age 不能再被重新赋值
4. 函数
在 TypeScript 中,你可以为函数参数和返回值添加类型。
function greet(name: string): string {
return 'Hello, ' + name;
}
5. 类和接口
-
类:TypeScript 支持基于类的面向对象编程。
class Person { name: string; constructor(name: string) { this.name = name; } greet() { return 'Hello, my name is ' + this.name; } }
-
接口:接口定义了一个类的结构,但不包含实现。它允许你定义对象之间应该如何交互。
interface Animal { name: string; speak(): string; } class Dog implements Animal { name: string; constructor(name: string) { this.name = name; } speak(): string { return 'Woof!'; } }
6. 泛型
泛型允许你定义可重用组件,这些组件可以工作于多种数据类型。
function identity<T>(arg: T): T { return arg; } let output1 = identity<string>("myString"); // output1 类型是 string let output2 = identity<number>(123); // output2 类型是 number
7. 类型断言
有时,你会比 TypeScript 编译器更确定一个值的类型。你可以使用类型断言来告诉编译器你比它更确定。
let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; // 或者使用 as 语法 let strLengthAs: number = (someValue as string).length;
8. 编译 TypeScript
你可以使用
tsc
命令来编译 TypeScript 文件。例如,如果你有一个名为app.ts
的 TypeScript 文件,你可以运行tsc app.ts
来生成一个对应的 JavaScript 文件(app.js
)。9. 其他特性
- 模块:TypeScript 支持 ES6 模块语法。
- 装饰器:装饰器是一种特殊类型的声明,它可以被附加到类声明、方法、属性或参数上。
- 混入(Mixins):TypeScript 中的混入允许你创建一个类,该类同时包含多个类的功能。
- 命名空间:命名空间用于组织代码,以避免命名冲突。但在 ES6 模块成为主流后,命名空间的使用已经减少。
这只是一个简短的 TypeScript 学习笔记,涵盖了其核心概念。要深入学习 TypeScript,建议查阅官方文档和相关教程。
后续会持续更新分享相关内容,记得关注哦!