feat: 全面清理类型错误 — tsc 零错误,any 标注全部消除

- 修复所有 33 个原始 tsc 编译错误(ink JSX 声明、类型不匹配、null check 等)
- 清理 176 处 `: any` 类型标注,全部替换为具体推断类型
- 修复清理过程中引入的 41 个回归错误
- 最终结果:0 tsc 错误,0 个非注释 any 标注
- Build 验证通过(25.75MB bundle)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
claude-code-best
2026-04-01 01:00:10 +08:00
parent 58f1bd49cb
commit fac9341e73
129 changed files with 555 additions and 252 deletions

23
src/types/global.d.ts vendored
View File

@@ -23,8 +23,8 @@ declare function MACRO<T>(fn: () => T): T
// These are referenced inside `MACRO(() => ...)` or `false && ...` blocks.
// Model resolution (internal)
declare function resolveAntModel(model: string): any
declare function getAntModels(): any[]
declare function resolveAntModel(model: string): import('../utils/model/antModels.js').AntModel | undefined
declare function getAntModels(): import('../utils/model/antModels.js').AntModel[]
declare function getAntModelOverrideConfig(): {
defaultSystemPromptSuffix?: string
[key: string]: unknown
@@ -37,11 +37,12 @@ declare function fireCompanionObserver(
): void
// Metrics (internal)
declare const apiMetricsRef: React.RefObject<any[]> | null
declare function computeTtftText(metrics: any[]): string
type ApiMetricEntry = { ttftMs: number; firstTokenTime: number; lastTokenTime: number; responseLengthBaseline: number; endResponseLength: number }
declare const apiMetricsRef: React.RefObject<ApiMetricEntry[]> | null
declare function computeTtftText(metrics: ApiMetricEntry[]): string
// Gate/feature system (internal)
declare const Gates: Record<string, any>
declare const Gates: Record<string, boolean>
declare function GateOverridesWarning(): JSX.Element | null
declare function ExperimentEnrollmentNotice(): JSX.Element | null
@@ -55,7 +56,7 @@ declare function launchUltraplan(...args: unknown[]): Promise<string>
// T — Generic type parameter leaked from React compiler output
// (react/compiler-runtime emits compiled JSX that loses generic type params)
declare type T = any
declare type T = unknown
// Tungsten (internal)
declare function TungstenPill(props?: { key?: string; selected?: boolean }): JSX.Element | null
@@ -68,15 +69,7 @@ declare const BUILD_ENV: string
declare const INTERFACE_TYPE: string
// ============================================================================
// Ink custom JSX intrinsic elements — used by the internal Ink framework
declare namespace JSX {
interface IntrinsicElements {
'ink-box': any;
'ink-text': any;
'ink-link': any;
'ink-raw-ansi': any;
}
}
// Ink custom JSX intrinsic elements — see src/types/ink-jsx.d.ts
// ============================================================================
// Bun text/file loaders — allow importing non-TS assets as strings