在 TypeScript 中,索引访问操作符 [] 可以用于访问对象或数组的属性或元素。它的基本语法如下:
ObjectType[KeyType]
// 对象示例
interface Person {
name: string;
age: number;
}
let person: Person = { name: 'John', age: 30 };
console.log(person['name']); // 输出: 'John'
console.log(person['age']); // 输出: 30
// 数组示例
let numbers: number[] = [1, 2, 3, 4, 5];
console.log(numbers[2]); // 输出: 3
interface Person {
name: string;
age: number;
address: {
street: string;
city: string;
country: string;
};
}
type PersonKey = keyof Person;
type AddressKey = keyof Person['address'];
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
let person: Person = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'Anytown',
country: 'USA'
}
};
console.log(getProperty(person, 'name')); // 输出: 'John'
console.log(getProperty(person, 'address')['city']); // 输出: 'Anytown'
在这个示例中,我们展示了如何使用索引访问操作符结合 keyof 和泛型,编写出更加类型安全和灵活的代码。 总之,索引访问操作符是 TypeScript 中一个非常强大的特性,它可以帮助开发者更好地利用 TypeScript 的类型系统,提高代码的可维护性和可靠性。