fix: 修复多处TypeScript类型错误(Inspiration、ExpansionPlanEditor、sseClient等)

This commit is contained in:
xiamuceer-j
2026-01-14 14:33:43 +08:00
parent aeb78fddd2
commit 7ba2b2e5fa
31 changed files with 347 additions and 192 deletions
+18 -14
View File
@@ -1,6 +1,6 @@
import { Modal, Form, Input, InputNumber, Select, Tag, Space, Button, message, Divider } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import { useState, useEffect } from 'react';
import { useState, useEffect, useCallback } from 'react';
import type { ExpansionPlanData, Character } from '../types';
import { characterApi } from '../services/api';
@@ -36,13 +36,7 @@ export default function ExpansionPlanEditor({
const [loadingCharacters, setLoadingCharacters] = useState(false);
// 加载项目角色列表
useEffect(() => {
if (visible && projectId) {
loadCharacters();
}
}, [visible, projectId]);
const loadCharacters = async () => {
const loadCharacters = useCallback(async () => {
try {
setLoadingCharacters(true);
setAvailableCharacters([]); // 重置为空数组
@@ -53,8 +47,11 @@ export default function ExpansionPlanEditor({
let chars: Character[] = [];
if (Array.isArray(response)) {
chars = response;
} else if (response && typeof response === 'object' && 'items' in response && Array.isArray((response as any).items)) {
chars = (response as any).items;
} else if (response && typeof response === 'object' && 'items' in response) {
const responseObj = response as { items?: Character[] };
if (Array.isArray(responseObj.items)) {
chars = responseObj.items;
}
} else {
console.error('角色API返回格式异常:', response);
message.warning('角色数据格式异常');
@@ -62,14 +59,21 @@ export default function ExpansionPlanEditor({
setAvailableCharacters(chars);
console.log('设置的角色列表:', chars);
} catch (error: any) {
} catch (error: unknown) {
console.error('加载角色列表失败:', error);
setAvailableCharacters([]);
message.error('加载角色列表失败: ' + (error?.message || '未知错误'));
const err = error as Error;
message.error('加载角色列表失败: ' + (err?.message || '未知错误'));
} finally {
setLoadingCharacters(false);
}
};
}, [projectId]);
useEffect(() => {
if (visible && projectId) {
loadCharacters();
}
}, [visible, projectId, loadCharacters]);
// 当planData或chapterSummary变化时更新状态
useEffect(() => {
@@ -325,7 +329,7 @@ export default function ExpansionPlanEditor({
step={100}
style={{ width: '100%' }}
formatter={(value) => `${value}`}
parser={(value) => value?.replace(' 字', '') as any}
parser={(value) => Number(value?.replace(' 字', '')) as 500 | 10000}
/>
</Form.Item>