# @electron-toolkit/typed-ipc 中文文档

规范地址：https://npmcn.com/package/%40electron-toolkit/typed-ipc/

版本：1\.0\.2
npm 元数据更新时间：2024-11-11T15:07:41.443Z
中文译文更新时间：2026-11-13T12:02:34.323Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40electron-toolkit/typed-ipc
原文对照：https://npmcn.com/package/%40electron-toolkit/typed-ipc/?lang=original
项目主页：https://github.com/alex8088/electron-toolkit/tree/master/packages/typed-ipc#readme
源码仓库：https://github.com/alex8088/electron-toolkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.9 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：electron \>=13\.0\.0，@electron-toolkit/preload \>=3\.0\.0
- 首次发布：2024-08-24T15:36:17.775Z
- 最新版本发布：2024-11-11T15:07:41.252Z
- 近 30 天下载量：14654（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @electron-toolkit/typed-ipc
```

也可以使用：`pnpm add @electron-toolkit/typed-ipc`、`yarn add @electron-toolkit/typed-ipc`、`bun add @electron-toolkit/typed-ipc`

## README

# @ electron-toolkit/ typed- ipc

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

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

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

## 使用量

### 安装

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

### 开始

1.  使用 [@electron-toolkit/ 预装](https://github.com/alex8088/electron-toolkit/tree/master/packages/preload) 以曝光电子API.
    
    您可以在指定的预装脚本中披露 :
    
    ```ts
    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
    }
    ```
    
    或者说
    
    ```ts
    import { exposeElectronAPI } from '@electron-toolkit/preload'
    
    exposeElectronAPI()
    ```
    
2.  添加 `*.d.ts` 声明文件以定义 IPC 事件类型限制 。 并记住把它纳入你的tsconfig 以确保它生效.
    
    ```ts
    // 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.  在主过程中注册一个收听器或处理器,或者向渲染器发送信息.
    
    ```ts
    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.  从渲染过程向主进程发送信息,或者聆听主进程的信息.
    
    ```ts
    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)
    })
    ```
    

## 许可证

[麻省理工学院](https://npmcn.com/package/%40electron-toolkit/typed-ipc/LICENSE) 亚历克斯.wei

## 常见问题

### @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 和提交记录判断。

