消息类型定义
要想消息类型有 typesafe
的效果,我们必须得定义每个消息的类型。
消息类型的定义文件存放在 /src/messageType.ts
中
typescript
// /src/messageType.ts
export type InjectMessageType = {
readUserName(): Promise<string>;
setUserName(name: string): Promise<void>;
};
export type BackgroundMessageType = {};
// /src/messageType.ts
export type InjectMessageType = {
readUserName(): Promise<string>;
setUserName(name: string): Promise<void>;
};
export type BackgroundMessageType = {};
TIP
消息类型都是异步的因此返回值都应该是 Promise
InjectMessageType
这个类型描述的是 injectScript 发送
的消息,比如你需要在 injectScript 传递一个读取用户名称的消息到 background
那么你就要在这里面定义 readUserName
的类型
BackgroundMessageType
这个类型描述的是 background 给 injectScript 发送的消息. 比如 background 中需要通知所有的 injectScript 更新用户的登录状态,那么你就可以在这里定义消息类型
注意
BackgroundMessageType
定义的是 background 发送给 injectScript 的消息类型, 不是
InjectMessageType 中某个消息的返回值!
如果你没有 background 给 injectScript 传递消息的情况,这里就可以留空