使用 TypeScript 中的索引类型,通过键的名称动态推导出值的类型。示例如下:
interface User { id: number; name: string; age: number; }
function filterUsers
const users: User[] = [ { id: 1, name: 'Alice', age: 23 }, { id: 2, name: 'Bob', age: 25 }, { id: 3, name: 'Charlie', age: 23 }, ];
const filteredUsers = filterUsers(users, 'age', 23); console.log(filteredUsers); // [{ id: 1, name: 'Alice', age: 23 }, { id: 3, name: 'Charlie', age: 23 }]
以上示例中,通过 `filterUsers` 函数的泛型参数 `T` 限制了 `prop` 的类型,其只能是 `User` 中的键名称。在函数体内,使用 `prop` 参数获取对象的属性值,并与提供的 `value` 进行比较。这样就能在运行时动态限制对象值的类型。