Appearance
流式打字机工具,用于将持续输入的文本逐字符输出,并通过事件通知当前文本变化和完成状态。
安装
bash
pnpm add @mingto/type-writer快速开始
typescript
import { createTypeWriter } from '@mingto/type-writer'
const writer = createTypeWriter({ speed: 80 })
writer.on('change', (text) => {
console.log(text)
})
writer.on('complete', () => {
console.log('done')
})
writer.send('你好,')
writer.send('世界')
writer.end()API
createTypeWriter(options)
创建打字机实例。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
options.speed | number | 100 | 每个字符输出的间隔时间,单位毫秒 |
typescript
const writer = createTypeWriter({ speed: 100 })send(text)
向打字机追加文本。文本会按字符拆分并进入输出队列。
| 参数 | 类型 | 说明 |
|---|---|---|
text | string | 要追加输出的文本 |
typescript
writer.send('第一段')
writer.send('第二段')end()
标记输入结束。队列中的文本输出完成后会触发 complete 事件。
typescript
writer.end()finish()
立即结束并销毁当前打字机实例。调用后会清空队列、停止定时器、触发 complete 事件并清理事件监听。
typescript
writer.finish()getText()
获取当前已经输出的完整文本。
typescript
const text = writer.getText()on(eventName, callback)
监听打字机事件,支持链式调用。
| 事件名 | 回调参数 | 说明 |
|---|---|---|
change | string | 每输出一个字符后触发,参数为当前完整文本 |
complete | - | 打字任务完成或手动销毁时触发 |
typescript
writer
.on('change', text => console.log(text))
.on('complete', () => console.log('complete'))状态说明
| 状态 | 说明 |
|---|---|
pending | 等待执行 |
executing | 正在输出 |
completed | 已完成 |
包主入口导出 createTypeWriter 方法,用于创建打字机实例。