ts基础
# 快速上手 TypeScript
# TypeScript 简介
- TypeScript (TS) 是 JavaScript (JS) 的超集,增加了类型系统。
- TS 支持所有 JS 语法,编译时去掉类型信息,生成 JS 代码。
- TS 在开源社区中流行,是前端开发的更好选择,优于其他类型系统(如 Flow.js)。
# 为什么需要类型系统
- JS 的灵活性导致类型错误,需在运行时才能发现。
- 示例:
function getFirstWord(msg) { console.log(msg.split(' ')[0]); } getFirstWord(123); // 会导致 TypeError1
2
3
4 - TS 在编译时进行类型检查,避免运行时错误,减少潜在的 BUG。
# Hello TypeScript
- 创建
ts文件夹,添加index.ts文件。 - 安装主要依赖包:
npm install -D typescript ts-node1 - 修改
package.json中的 scripts 字段,添加:"dev:ts": "ts-node src/ts/index.ts"1
# 常用的 TS 类型定义
# 原始数据类型
| 原始数据类型 | JavaScript | TypeScript |
|---|---|---|
| 字符串 | String | string |
| 数值 | Number | number |
| 布尔值 | Boolean | boolean |
| 大整数 | BigInt | bigint |
| 符号 | Symbol | symbol |
| 空值 | Null | null |
| 未定义 | Undefined | undefined |
# 数组
- 定义数组类型:
string[]或Array<string>
# 对象(接口)
- 使用
interface定义对象结构。 - 接口的命名遵循大驼峰命名法。
- 支持可选属性:
age?: number - 接口可以继承:
interface Admin extends UserItem
# 类
- 使用
class关键字定义对象模板。 - 类支持继承,方法定义时需指定参数和返回值类型。
# 函数
# 基本写法
- 定义入参和返回值类型:
function sum(x: number, y: number): number { return x + y; }1
2
3
# 可选参数与默认参数
- 可选参数使用
?,默认参数可以直接赋值。
# 无返回值的函数
- 返回类型为
void:function sayHi(name: string): void { console.log(`Hi, ${name}!`); }1
2
3
# 异步函数
- 返回类型为
Promise<T>,用于处理异步操作:async function fetchData(): Promise<string> { return "data"; }1
2
3
# 函数重载
- 允许同名函数根据参数类型返回不同类型:
function greet(name: string): string; function greet(name: string[]): string[]; function greet(name: string | string[]) { return Array.isArray(name) ? name.map(n => `Welcome, ${n}!`) : `Welcome, ${name}!`; }1
2
3
4
5
# 联合类型
- 用于定义变量可以是多种类型:
function counter(count: number | string) { console.log(`Count is: ${count}`); }1
2
3
# 类型断言
- 通过
as或<类型>显式指定变量类型:const value = "Hello" as string;1
# 编译 TypeScript 为 JavaScript
- 使用
tsc命令编译:tsc src/ts/index.ts --outDir dist1 - 运行编译后的文件:
node dist/index.js1
# tsconfig.json
- 用于配置 TypeScript 编译选项。
- 生成方式:在命令行中运行
tsc --init。 - 配置示例:
{ "compilerOptions": { "target": "es6", "module": "commonjs", "outDir": "./dist" } }1
2
3
4
5
6
7
# 其他注意事项
- TypeScript 提供类型推论,自动推导变量类型。
- 使用
@types安装缺失的类型定义包。
# 总结
- TypeScript 提供了强大的类型系统,增强了代码的可维护性和安全性。
- 通过实践和配置,可以快速上手并有效使用 TypeScript。
在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54