为 clipboard.js 开源库添加简化版的定义文件
7.6k
等79人参与

题目:
根据所学知识,为最火的 clipboard.js 开源库添加简化版的定义文件 https://github.com/zenorocha/clipboard.js

// 我们可以简单的将它的 API 理解为这样
// 构造函数
var clipboard = new ClipboardJS('.btn') // 字符串或者元素
// 事件
clipboard.on('success 或者 error', function (e) {  	  
 console.info('Action:', e.action); //字符串
 console.info('Text:', e.text); //字符串
 console.info('Trigger:', e.trigger); // DOM 元素
 e.clearSelection(); // 函数 返回 void
});
// 实例方法
clipboard.destroy();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!

任务要求:
添加构造函数类型添加 on 方法的类型 和 destory 方法类型添加实例方法的定义
提示:
1 使用 declare class 来声明类的定义
2 使用字符串字面量声明几个限定值的定义,比如事件的类型
3 DOM 元素的类型可以使用内置类型


type EventName = 'success' | 'error'

interface ClipboardEvent {

  action: string

  text: string

  trigger: string

  clearSelection: () => void

}

declare class ClipboardJS {

  constructor(selector: string | HTMLElement)

  on(eventName: EventName, cb: (e: ClipboardEvent) => void): void

  destroy(): void

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!
我的作业
去发布

登录后即可发布作业,立即

全部作业
0
评论
提交于  2025-02-28 20:49:13

登录后即可查看更多作业,立即

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号