Skip to content

Commit a3e59c5

Browse files
authored
feat(Vue): 增加事件输入输出类型的基本字符串记录及通用类型链接显示 (#707)
1 parent 39c385f commit a3e59c5

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

packages/scripts/docs/vue.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,19 @@ function formatToVueApi(api, params) {
205205
r.event_input = baseName ? `\`${baseName}\`` : '';
206206
interfaceDescription = interfaceDescription.concat(interfaceDesc);
207207
interfaceDesc.length && (hasComplicatedType = true);
208+
// 记录 event 输入类型的基本字符串,后面用于检测是否包含通用全局类型
209+
if (!r._eventTypeBases) r._eventTypeBases = [];
210+
r._eventTypeBases.push(baseName || api.event_input);
208211
}
209212
// 格式化 event_output
210213
if (api.event_output) {
211214
const { baseName, interfaceDesc } = moveTsTypeToDesc(api.event_output);
212215
r.event_output = baseName ? `\`${baseName}\`` : '';
213216
interfaceDescription = interfaceDescription.concat(interfaceDesc);
214217
interfaceDesc.length && (hasComplicatedType = true);
218+
// 记录 event 输出类型的基本字符串
219+
if (!r._eventTypeBases) r._eventTypeBases = [];
220+
r._eventTypeBases.push(baseName || api.event_output);
215221
}
216222
// 如果有复杂类型定义就添加超链接指向具体的 TS 类型定义链接地址
217223
if (hasComplicatedType) {
@@ -220,6 +226,15 @@ function formatToVueApi(api, params) {
220226
const text = languageConfig[LANGUAGE];
221227
desc = desc.concat(`[${text.detailDefineText}]${v}`);
222228
}
229+
// 如果事件的输入/输出中包含通用类型,则也显示「查看通用类型定义」链接
230+
if (r._eventTypeBases && r._eventTypeBases.length) {
231+
const eventBasesStr = r._eventTypeBases.join(' ');
232+
const filters = TDESIGN_GLOBALS.filter(global => eventBasesStr.indexOf(global) !== -1);
233+
if (filters.length) {
234+
const text = languageConfig[LANGUAGE].commonDefineText;
235+
desc.push(`[${text}](${config.commonTypePath})`);
236+
}
237+
}
223238
r.field_required = r.field_required ? 'Y' : 'N';
224239
r.field_default_value = r.field_default_value || '-';
225240
// 非受控属性名称

0 commit comments

Comments
 (0)