Skip to content

流式打字机工具,用于将持续输入的文本逐字符输出,并通过事件通知当前文本变化和完成状态。

安装

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.speednumber100每个字符输出的间隔时间,单位毫秒
typescript
const writer = createTypeWriter({ speed: 100 })

send(text)

向打字机追加文本。文本会按字符拆分并进入输出队列。

参数类型说明
textstring要追加输出的文本
typescript
writer.send('第一段')
writer.send('第二段')

end()

标记输入结束。队列中的文本输出完成后会触发 complete 事件。

typescript
writer.end()

finish()

立即结束并销毁当前打字机实例。调用后会清空队列、停止定时器、触发 complete 事件并清理事件监听。

typescript
writer.finish()

getText()

获取当前已经输出的完整文本。

typescript
const text = writer.getText()

on(eventName, callback)

监听打字机事件,支持链式调用。

事件名回调参数说明
changestring每输出一个字符后触发,参数为当前完整文本
complete-打字任务完成或手动销毁时触发
typescript
writer
  .on('change', text => console.log(text))
  .on('complete', () => console.log('complete'))

状态说明

状态说明
pending等待执行
executing正在输出
completed已完成

包主入口导出 createTypeWriter 方法,用于创建打字机实例。