diff --git a/src/stronge.js b/src/stronge.js
index 2d49963..dccc19d 100644
--- a/src/stronge.js
+++ b/src/stronge.js
@@ -1,6 +1,33 @@
import { ref } from "vue";
import { GM_registerMenuCommand, GM_getValue, GM_setValue } from '$';
import { GM_fetch } from "./tool";
+/**
+ * @typedef {Object} Emot
+ * @prop {number} id
+ * @prop {string} name
+ * @prop {string} icon
+ * @prop {number} sort_order
+ * @prop {string} static_icon
+ * @prop {number} updated_at
+ * @prop {boolean} is_available
+ * @prop {string} status
+ * @prop {string[]} keywords
+ */
+/**
+ * @typedef {Object} EmotCate
+ * @prop {number} id
+ * @prop {string} name
+ * @prop {string} icon
+ * @prop {number} sort_order
+ * @prop {number} num
+ * @prop {string} status
+ * @prop {Emot[]} list
+ * @prop {number} updated_at
+ * @prop {boolean} is_available
+ */
+/**
+ * @type {import('vue').Ref
}
+ */
const emotList = ref();
const now = 0 | (Date.now() / 1000);
const emotKey = 'miyoushe-emoticon';
@@ -16,6 +43,15 @@ function confirmList() {
confirmList();
function readList() {
+ /**
+ * @typedef {Object} ApiResp
+ * @prop {number} retcode
+ * @prop {string} message
+ * @prop {{list:EmotCate[]}} data
+ */
+ /**
+ * @type {ApiResp}
+ */
const resp = JSON.parse(GM_getValue(emotKey, null));
if (!resp) {
return fetchList();