TypeScript 是什么?
TypeScript 是 JavaScript 的一个超集,它添加了静态类型检查。这意味着你可以在编写代码时定义变量的类型,从而在编译阶段捕获类型错误。TypeScript 编译器会将 TypeScript 代码转换为普通的 JavaScript,以便在浏览器或Node.js中运行。
安装 TypeScript:
安装
npm install -g typescript
检查版本,有没有安装成功
tsc -V
Vue3中在创建项目时,选择配置 TypeScript 作为语言支持即可
TypeScript 基础知识
1. 类型系统: TypeScript 引入了静态类型系统,允许你为变量、函数参数、函数返回值等添加类型注解。这有助于捕获潜在的类型错误,提高代码的稳定性和可维护性。
// 声明一个变量并指定其类型为字符串
let message: string = "Hello, TypeScript";
2. 接口: TypeScript 允许你使用接口来定义对象的结构和类型。接口描述了对象应该具有的属性和方法。
interface Person {
name: string;
age: number;
}
const person: Person = { name: "Alice", age: 30 };
3. 类: TypeScript 支持类,你可以使用类来创建对象和定义方法。类可以继承和实现接口。
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound.`);
}
}
4. 函数: TypeScript 允许你为函数的参数和返回值添加类型注解,帮助你在编写函数时更清晰地定义其行为。
function add(a: number, b: number): number {
return a + b;
}
5. 泛型: TypeScript 支持泛型,允许你编写可重用的代码,同时保持类型安全。
function identity<T>(arg: T): T {
return arg;
}
const value = identity<string>("Hello, Generics");
6. 枚举: TypeScript 允许你创建枚举,用于定义一组具名的常量值。
enum Color {
Red,
Green,
Blue
}
const selectedColor: Color = Color.Red;
7. 模块: TypeScript 支持模块化开发,允许你将代码分割成多个文件,并使用 import 和 export 来组织和共享代码。
// math.ts
export function add(a: number, b: number): number {
return a + b;
}
// main.ts
import { add } from "./math";
const result = add(2, 3);
8. 类型注解和类型推断: TypeScript 具有类型推断功能,这意味着它可以根据上下文自动推断变量的类型。但你也可以显式地添加类型注解,提供更明确的类型信息。
let num = 42; // TypeScript 自动推断 num 为 number 类型
let str: string = "Hello"; // 显式地指定 str 的类型为 string
TS 常见类型
TypeScript(TS)具有与 JavaScript 相似的基础语法,但添加了类型注解以提供类型检查。以下是 TypeScript 常用的基础类型:
-
布尔类型(Boolean) :表示逻辑值
true或false。typescriptCopy code let isDone: boolean = false; -
数字类型(Number) :表示整数或浮点数值。
typescriptCopy code let decimal: number = 6; let pi: number = 3.14; -
字符串类型(String) :表示文本字符串。
typescriptCopy code let name: string = "Alice"; -
数组类型(Array) :表示一个元素的集合。
typescriptCopy code let numbers: number[] = [1, 2, 3]; let names: string[] = ["Alice", "Bob", "Charlie"]; -
元组类型(Tuple) :表示一个已知长度和固定类型的数组。
typescriptCopy code let person: [string, number] = ["Alice", 30]; -
枚举类型(Enum) :表示一组命名的常数值。
typescriptCopy code enum Color { Red, Green, Blue } let favoriteColor: Color = Color.Blue; -
Any 类型(Any) :表示任意类型,取消类型检查。
typescriptCopy code let data: any = 42; data = "Hello"; -
Void 类型(Void) :表示没有返回值的函数的返回类型。
typescriptCopy code function logMessage(): void { console.log("This is a message"); } -
Null 和 Undefined 类型(Null 和 Undefined) :表示 null 和 undefined 值。
typescriptCopy code let n: null = null; let u: undefined = undefined; -
Never 类型(Never) :表示永远不会返回值的函数的返回类型,或抛出异常的函数的返回类型。
typescriptCopy code function throwError(message: string): never { throw new Error(message); } -
Object 类型(Object) :表示非原始类型的类型,也不包括 null 和 undefined。
typescriptCopy code let obj: object = { key: "value" };
了解更多关于 TypeScript 的类型和高级类型,请参阅 TypeScript 官方文档。