Address code review feedback - improve code quality

Co-authored-by: qaiu <29825328+qaiu@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-07 04:52:22 +00:00
parent 0560989e77
commit f23b97e22c
3 changed files with 21 additions and 80 deletions

View File

@@ -19,7 +19,7 @@ export function compileToES5(sourceCode, fileName = 'script.ts') {
module: ts.ModuleKind.None, // 不使用模块系统
lib: ['lib.es5.d.ts', 'lib.dom.d.ts'], // 包含ES5和DOM类型定义
removeComments: false, // 保留注释
noEmitOnError: false, // 即使有错误生成代码
noEmitOnError: true, // 有错误时不生成代码
noImplicitAny: false, // 允许隐式any类型
strictNullChecks: false, // 不进行严格的null检查
suppressImplicitAnyIndexErrors: true, // 抑制隐式any索引错误

View File

@@ -7,8 +7,8 @@
<span class="title">JS解析器演练场</span>
<!-- 语言选择器 -->
<el-radio-group v-model="codeLanguage" size="small" style="margin-left: 15px;" @change="onLanguageChange">
<el-radio-button label="JavaScript">JavaScript</el-radio-button>
<el-radio-button label="TypeScript">TypeScript</el-radio-button>
<el-radio-button :label="LANGUAGE.JAVASCRIPT">JavaScript</el-radio-button>
<el-radio-button :label="LANGUAGE.TYPESCRIPT">TypeScript</el-radio-button>
</el-radio-group>
</div>
<div class="header-actions">
@@ -496,9 +496,15 @@ export default {
Pane
},
setup() {
// 语言常量
const LANGUAGE = {
JAVASCRIPT: 'JavaScript',
TYPESCRIPT: 'TypeScript'
};
const editorRef = ref(null);
const jsCode = ref('');
const codeLanguage = ref('JavaScript'); // 新增:代码语言选择
const codeLanguage = ref(LANGUAGE.JAVASCRIPT); // 新增:代码语言选择
const compiledES5Code = ref(''); // 新增编译后的ES5代码
const compileStatus = ref({ success: true, errors: [] }); // 新增:编译状态
const testParams = ref({
@@ -758,7 +764,7 @@ async function parseById(
// 加载示例代码
const loadTemplate = () => {
jsCode.value = codeLanguage.value === 'TypeScript' ? exampleTypeScriptCode : exampleCode;
jsCode.value = codeLanguage.value === LANGUAGE.TYPESCRIPT ? exampleTypeScriptCode : exampleCode;
ElMessage.success(`已加载${codeLanguage.value}示例代码`);
};
@@ -897,8 +903,9 @@ async function parseById(
// 确定要执行的代码TypeScript需要先编译
let codeToExecute = jsCode.value;
// 如果是TypeScript模式代码看起来像TypeScript先编译
if (codeLanguage.value === 'TypeScript' || isTypeScriptCode(jsCode.value)) {
// 优先使用显式语言选择如果是JavaScript模式代码是TS给出提示
if (codeLanguage.value === LANGUAGE.TYPESCRIPT) {
// TypeScript模式始终编译
try {
const compileResult = compileToES5(jsCode.value);
@@ -943,6 +950,12 @@ async function parseById(
};
return;
}
} else if (isTypeScriptCode(jsCode.value)) {
// JavaScript模式但检测到TypeScript语法给出提示
ElMessage.warning({
message: '检测到TypeScript语法建议切换到TypeScript模式',
duration: 3000
});
}
try {
@@ -1419,6 +1432,7 @@ curl "${baseUrl}/json/parser?url=${encodeURIComponent(exampleUrl)}"</pre>
});
return {
LANGUAGE,
editorRef,
jsCode,
codeLanguage,