TypeScript 是 JavaScript 的一个超集,添加了静态类型、接口、枚举等特性,使得代码更易于维护和扩展。以下是学习 TypeScript 的一些基本笔记和概念:
- 基本类型
布尔值: boolean
数字: number
字符串: string
数组: number[] 或 Array
元组: [string, number]
枚举: enum Color { Red, Green, Blue }
任意类型: any
空值: null 和 undefined
void: 表示没有任何类型或返回值的函数
never: 表示永远不会出现的值的类型 - 类型注解
类型注解为变量、函数参数和函数返回值提供了类型信息。
typescript
let isDone: boolean = false;
function greet(name: string): void {
console.log(Hello, ${name}!
);
}
3. 接口
接口定义了一个对象的形状,它可以描述一个类的一部分结构,也可以描述一个对象的结构。
typescript
interface Person {
name: string;
age: number;
greet(): void;
}
4. 类
TypeScript 支持基于类的面向对象编程。
typescript
class Student implements Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(Hello, my name is ${this.name}
);
}
}
5. 泛型
泛型允许你在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
typescript
function identity(arg: T): T {
return arg;
}
let output = identity(“myString”); // 输出 “myString”
6. 类型断言
有时候你会比 TypeScript 更确定一个值的类型。这时你可以使用类型断言来告诉 TypeScript 忽略自己的类型检查。
typescript
let someValue: any = “this is a string”;
let strLength: number = (someValue).length;
// 或者使用 as 语法
let strLength2: number = (someValue as string).length;
7. 模块和命名空间
TypeScript 支持 ES6 模块和命名空间(类似于其他语言中的包或库)。
-
装饰器
装饰器是一种特殊类型的声明,它可以被附加到类声明,方法,属性,或参数上。装饰器使用 @expression 的形式,expression 求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。 -
配置文件 tsconfig.json
tsconfig.json 是 TypeScript 项目的配置文件,它包含了编译选项和其他设置。 -
编译 TypeScript
使用 TypeScript 编译器(tsc)将 TypeScript 代码编译为 JavaScript 代码。 -
工具链和库
TSLint(已弃用,建议使用 ESLint):用于 TypeScript 的代码质量和风格检查工具。
Prettier:代码格式化工具,可以与 ESLint 集成。
TypeDoc:从 TypeScript 源代码生成文档的工具。
Angular, React, Vue 等前端框架都支持 TypeScript。
以上只是 TypeScript 的基本内容,实际上 TypeScript 还有许多高级特性和用法等待你去探索和学习。