TypeScript 的语法:初学者手册
2023-11-26 05:18:53
一、TypeScript 类型
TypeScript 是一种静态类型语言,这意味着您必须在编译时指定变量和函数的类型。这有助于捕获错误,使您的代码更具可读性。
1.1 基础类型
TypeScript 支持以下基础类型:
- 数值 :包括整数和浮点数。
- 布尔值 :true 或 false。
- 字符串 :由引号或反引号引起来的一系列字符。
1.2 数组和元组类型
数组类型 表示可以存储多个相同类型值的变量。可以使用两种方式定义数组类型:
方式一:
let numbers: number[];
方式二:
let numbers: Array<number>;
联合类型 表示可以存储不同类型值的变量。例如,您可以定义一个联合类型,可以存储字符串或数字:
let strOrNum: string | number;
任意类型 表示可以存储任何类型的值的变量。不建议使用任意类型,因为它会降低代码的可读性和可维护性。
元组类型 是数组类型的扩展,主要是创建定长、定数据类型的数组。元组中的每个元素都有自己的类型,并且元组的长度是固定的。例如,您可以定义一个元组类型来存储姓名和年龄:
type Person = [string, number];
二、TypeScript 函数
TypeScript 函数与 JavaScript 函数非常相似。您可以在函数名前面指定函数的类型,也可以指定函数的参数类型和返回值类型。例如:
function add(a: number, b: number): number {
return a + b;
}
三、TypeScript 类
TypeScript 类与 JavaScript 类非常相似。您可以在类名前面指定类的类型,也可以指定类的属性类型和方法类型。例如:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
四、TypeScript 接口
TypeScript 接口类似于类,但它们没有实现。接口可以用于定义对象的形状,并可以用于类型检查。例如,您可以定义一个接口来定义一个具有姓名和年龄属性的对象:
interface Person {
name: string;
age: number;
}
五、TypeScript 模块
TypeScript 模块允许您将代码组织成更小的单元。您可以使用模块来组织相关的函数、类和接口。例如,您可以创建一个名为 person.ts
的模块,其中包含 Person
类和 greet
函数:
// person.ts
export class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
export function greet(person: Person) {
console.log(`Hello, ${person.name}!`);
}
然后,您可以在其他模块中导入 person.ts
模块并使用 Person
类和 greet
函数。
// main.ts
import { Person, greet } from './person';
const person = new Person('John', 30);
person.greet();
greet(person);
结语
本指南介绍了 TypeScript 的基础语法。有关 TypeScript 的更多信息,请参阅官方文档。