TypeScript 关键字
介绍
TypeScript 是 JavaScript 的超集 ,它通过添加静态类型和其他特性来增强 JavaScript 的功能。在 TypeScript 中,关键字是语言的核心组成部分,它们用于定义变量、函数、类、接口等。理解这些关键字的作用和用法,是掌握 TypeScript 的基础。
本文将详细介绍 TypeScript 中的一些常用关键字,并通过代码示例和实际案例帮助你更好地理解它们的应用场景。
常用 TypeScript 关键字
let
和 const
let
和 const
是 TypeScript 中用于声明变量的关键字。它们与 JavaScript 中的 var
不同,提供了块级作用域。
let
用于声明可变的变量。const
用于声明不可变的常量。
let count = 10;
count = 20; // 合法
const pi = 3.14;
pi = 3.14159; // 非法,会报错
建议优先使用 const
,只有在变量需要重新赋值时才使用 let
。
function
function
关键字用于声明函数。TypeScript 允许你为函数的参数和返回值指定类型。
function add(a: number, b: number): number {
return a + b;
}
console.log(add(2, 3)); // 输出: 5
class
class
关键字用于定义类。TypeScript 支持面向对象编程,类是实现封装、继承和多态的基础。
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
speak(): void {
console.log(`${this.name} makes a noise.`);
}
}
const dog = new Animal('Dog');
dog.speak(); // 输出: Dog makes a noise.
interface
interface
关键字用于定义接口。接口是 TypeScript 中用于描述对象形状的一种方式,常用于定义对象的类型。
interface Person {
name: string;
age: number;
}
function greet(person: Person): void {
console.log(`Hello, ${person.name}`);
}
const user: Person = { name: 'Alice', age: 25 };
greet(user); // 输出: Hello, Alice
type
type
关键字用于定义类型别名。它可以用来为复杂的类型定义一个新的名称,使代码更易读。
type StringOrNumber = string | number;
function printValue(value: StringOrNumber): void {
console.log(value);
}
printValue('Hello'); // 输出: Hello
printValue(42); // 输出: 42
type
和 interface
都可以用来定义对象类型,但它们有一些细微的区别。interface
更适合用于定义对象的形状,而 type
更适合用于定义联合类型、交叉类型等复杂类型。
enum
enum
关键字用于定义枚举类型。枚举类型允许你为一组数值赋予更有意义的名称。
enum Color {
Red,
Green,
Blue,
}
let color: Color = Color.Green;
console.log(color); // 输出: 1
枚举类型在 TypeScript 中是双向映射的,即你可以通过名称获取值,也可以通过值获取名称。
as
as
关键字用于类型断言。当你比 TypeScript 更清楚某个值的类型时,可以使用类型断言来告诉 TypeScript 该值的类型。
let someValue: any = 'this is a string';
let strLength: number = (someValue as string).length;
console.log(strLength); // 输出: 16
类型断言不会改变变量的实际类型,它只是告诉 TypeScript 编译器你确信该变量的类型。