题目:
根据所学知识,为最火的 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
代码块
复制 预览
代码块
复制 预览
数据加载中...