动画的类型标注没看懂

来源:5-7 Collapse 添加动画第二部分 - 尽善尽美

独自灿烂

2025-02-19

const TransitionEvents: Record<string, (el: HTMLElement) => void> = {
  beforeEnter(el) {
    el.style.height = '0px'
  },
  enter(el) {
    el.style.height = `${el.scrollHeight}px`
  },

  beforeLeave(el) {
    el.style.height = `${el.scrollHeight}px`
  },
  leave(el) {
    el.style.height = '0px'
  }
}

Record<string, (el: HTMLElement) => void> 这个TS老师可以说说么,豆包了一下不是很懂,老师求指教

写回答

1回答

张轩

2025-02-19

同学你好

是一个对象类型,可以拆解为

1. Record<K, V> 是 TypeScript 的一个工具类型,其实就是标注一个普通的对象(Object)

K: 键的类型

V: 值的类型

在这个例子中:键的类型是 string 值的类型是 (el: HTMLElement) => void(一个函数类型)

key 对应的就是 'beforeEnter' 等等这些名称,后面就是这个函数(el) {    el.style.height = '0px'  },

注意 el 就是 HTMLElement 类型的




1
0

进阶必学,打造媲美ElementPlus的组件库

Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库

482 学习 · 219 问题

查看课程