上节课作业答案打卡
来源:10-22 【高级类型Pick+Record】 高级类型联合使用+作业

前端老师傅
2021-12-25
type Pick<T, K extends keyof T> = {
// in是类型映射,=for...in 循环迭代所有的K的类型
[P in K]: T[P]
}
type Record<T> = {
[p in keyof any]: T
}
interface Todo {
title: string
completed: boolean
description: string
}
let todoList: Todo[] = [
{
title: '开发权限管理模块',
completed: true,
description: '使用Vue3+typescript来开发'
},
{
title: '年会',
completed: false,
description: '12月29号上午开心酒店1楼105'
}
]
type TodoHasTitleAndCompleted = Pick<Todo, 'title' | 'completed'>
type TodeRecode = Record<TodoHasTitleAndCompleted>
let TodeResult: TodeRecode = {}
todoList.map(({ title, completed }) => {
TodeResult[title] = {
title,
completed
}
})
console.log(TodeResult, '最后的结果')
这个运行结果应该没错叭,谢谢老师
写回答
1回答
-
正确,可以,这是其中一种解法,可以进一步 稍作封装成一个函数,让封装性更好一些,可以试下。
00
相似问题