@electron-toolkit/typed-ipc

中文文档
1.0.2发布于 2024/11/11MITTypeScriptESM + CJS零依赖近 30 天下载 1.5万

类型安全电能 IPC, TypeScript中的最佳做法.

中文使用文档
文档目录4 节
  1. 使用量
  2. 安装
  3. 开始
  4. 许可证

@ electron-toolkit/ typed- ipc

类型安全电能 IPC, TypeScript中的最佳做法.

主要过程和渲染器过程都有类型检查和智能感. 既可检查又能感知收听器参数,处理器参数和返回值类型,您不会错过任何修改.

它提供了良好的发展经验。 限制IPC注册主要过程和调用渲染器过程,并避免低级出错. 同时,它保持了IPC的原始写作方法,更有利于阅读和理解,而不是过度封装了Electorn's IPC.

使用量

安装

npm i @electron-toolkit/preload @electron-toolkit/typed-ipc

开始

  1. 使用 @electron-toolkit/ 预装 以曝光电子API.

    您可以在指定的预装脚本中披露 :

    import { contextBridge } from 'electron'
    import { electronAPI } from '@electron-toolkit/preload'
    
    if (process.contextIsolated) {
      try {
        contextBridge.exposeInMainWorld('electron', electronAPI)
      } catch (error) {
        console.error(error)
      }
    } else {
      window.electron = electronAPI
    }
    

    或者说

    import { exposeElectronAPI } from '@electron-toolkit/preload'
    
    exposeElectronAPI()
    
  2. 添加 *.d.ts 声明文件以定义 IPC 事件类型限制 。 并记住把它纳入你的tsconfig 以确保它生效.

    // Main process ipc events
    type IpcEvents =
      | {
          ping: [string] // listener event map
        }
      | {
          'say-hello': () => string // handler event map
        }
    
    //Renderer ipc events
    type IpcRendererEvent = {
      ready: [boolean]
    }
    
  3. 在主过程中注册一个收听器或处理器,或者向渲染器发送信息.

    import { IpcListener, IpcEmitter } from '@electron-toolkit/typed-ipc/main'
    
    const ipc = new IpcListener<IpcEvents>()
    
    const emitter = new IpcEmitter<IpcRendererEvent>()
    
    ipc.on('ping', (e, arg) => {
      console.log(arg)
      emitter.send(e.sender, 'ready', true)
    })
    
    ipc.handle('say-hello', () => {
      return 'hello'
    })
    
  4. 从渲染过程向主进程发送信息,或者聆听主进程的信息.

    import { IpcListener, IpcEmitter } from '@electron-toolkit/typed-ipc/renderer'
    
    const ipc = new IpcListener<IpcRendererEvent>()
    
    const emitter = new IpcEmitter<IpcEvents>()
    
    ipc.on('ready', (e, arg) => {
      console.log(arg)
    })
    
    emitter.send('ping', 'pong')
    
    emitter.invoke('say-hello').then((str) => {
      console.log(str)
    })
    

许可证

麻省理工学院 亚历克斯.wei

版本与发布记录

@electron-toolkit/typed-ipc 共发布 3 个版本,首次发布于 2024/08/24;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.2latest2024/11/112 年前
1.0.12024/08/262 年前
1.0.02024/08/242 年前

关于 @electron-toolkit/typed-ipc 的常见问题

@electron-toolkit/typed-ipc 是什么?

类型安全电能 IPC, TypeScript中的最佳做法.

如何安装 @electron-toolkit/typed-ipc?

在项目目录运行 npm install @electron-toolkit/typed-ipc,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:electron(>=13.0.0)、@electron-toolkit/preload(>=3.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@electron-toolkit/typed-ipc 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@electron-toolkit/typed-ipc 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@electron-toolkit/typed-ipc 可以商用吗?

@electron-toolkit/typed-ipc 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@electron-toolkit/typed-ipc 的下载量有多少?

根据 npm 官方下载统计,@electron-toolkit/typed-ipc 在 2026/10/14 – 2026/11/12 这 30 天内被下载 14,654 次,日均约 488 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@electron-toolkit/typed-ipc 还在维护吗?

最新版本 1.0.2 发布于 2024/11/11(2 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/08/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。