什么是Typescript?
TypeScript是由微软开发的一款开源的编程语言,它是JavaScript的超集,遵循最新的ES6、ES5规范。TypeScript扩展了JavaScript的语法,并引入了类型系统,使得JavaScript在开发大型企业项目时更加可靠和可维护。与JavaScript相比,TypeScript具有更严格的类型检查、更好的代码提示和错误捕获能力。谷歌的Angular、Vue、React等框架也可以集成TypeScript来进行开发。同时,在Node.js框架中,如Nest.js、midway等也广泛使用TypeScript语法。
| TypeScript | JavaScript |
|---|---|
| JavaScript的超集,用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页 |
| 强类型,支持静态和动态类型 | 动态弱类型语言 |
| 可以在编译期间发现并纠正错误 | 只能在运行时发现错误 |
| 不允许改变变量的数据类型 | 变量可以被赋值澄不同类型 |
TS基础——基础类型
- boolean、number、string
- undefined、null
- any、unknow、void
- never
- 数组类型[]
- 元祖类型tuple
TS基础——函数类型
- 定义:TS定义函数类型时要定义输入参数类型和输出类型
- 输入参数:参数支持可选参数和默认参数
- 输出参数:输出卡伊自动推断,没有返回值时,默认为void类型
- 函数重载:名称相同但参数不同,可以通过重载支持多种类型
TS基础——interface
- 定义:接口是为了定义对象类型
- 特点:
- 可选属性:?
- 只读属性:readonly
- 可以描述函数类型
- 可以描述自定义属性
- 总结:接口非常灵活duck typing
TS基础——类
- 定义:写法和JS差不多,增加了一些定义
- 特点:增加了public、private、protected修饰符
- 抽象类:只能被继承,不能被实例化;作为基类,抽象方法必须被子类实现
- interface约束类,使用implements关键字
1. 静态类型
JavaScript是一种动态类型语言,这意味着你可以在运行时改变变量的类型。而TypeScript引入了静态类型,这意味着你在编写代码时就定义了变量的类型。这有助于在编译阶段就发现和修复错误,而不是在运行时。
let isDone: boolean = false;
let decimal: number = 6;
let color: string = "blue";
2. 类和接口
TypeScript支持基于类的面向对象编程。你可以定义类、接口和继承,这使得代码结构更清晰,更易于理解和维护。
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
3. 模块
TypeScript支持模块化编程。你可以将代码分割成多个模块,每个模块都有自己的作用域。模块可以导出和导入函数、变量或类型,这使得代码更易于组织和重用。
// someModule.ts
export function someFunction() { /* ... */ }
// anotherModule.ts
import { someFunction } from './someModule';
someFunction();
4. 高级类型
TypeScript提供了一些高级类型,如联合类型、交叉类型、类型别名、类型守卫和类型断言等,这使得你可以更精确地描述你的数据结构。
type StringOrNumber = string | number; // Union type
function padLeft(value: string, padding: StringOrNumber) {
// ...
}
5. 工具支持
由于TypeScript的静态类型特性,许多文本编辑器和IDE(如Visual Studio Code)可以提供更强大的代码自动完成、导航和重构功能。这可以大大提高开发效率和代码质量。
小结
总的来说,TypeScript通过添加静态类型、类、接口和模块等特性,使JavaScript代码更易于理解和维护。它是一种强大的工具,可以帮助我们编写更健壮、更可维护的JavaScript代码。