第三章练习答案
ts
function indexById<T extends { id: string }>(items: readonly T[]): Map<string, T> {
return new Map(items.map(item => [item.id, item]));
}
const users = indexById([{ id: 'u1', name: 'Ada' }]);
users.get('u1')?.name;Map 保留了 T,因此调用者仍能得到完整的元素类型;如果输入对象没有字符串 id,调用点会在编译期失败。