mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-20 06:44:32 +00:00
Chore: TypeScript cleanup - remove 254 @ts-expect-error suppressions (#7884)
## Summary Removes **254** `@ts-expect-error` suppressions through proper type fixes rather than type assertions. ## Key Changes ### Type System Improvements - Add `globalDefs` and `groupNodes` types to `ComfyAppWindowExtension` - Extract interfaces for group node handling (`GroupNodeHandler`, `InnerNodeOutput`, etc.) - Add `getHandler()` helper to consolidate GROUP symbol access pattern ### Files Fixed - **pnginfo.ts**: 39 suppressions removed via proper typing of workflow/prompt data - **app.ts**: 39 suppressions removed via interface extraction and type narrowing - **Tier 1 files**: 17 suppressions removed (maskeditor, imageDrawer, groupNode, etc.) - **groupNode.ts**: Major refactoring with proper interface organization ## Approach Following established constraints: - No `any` types - No `as unknown as T` casts (except legacy API boundaries) - Priority: Fix actual types > Type narrowing > Targeted suppressions as last resort - Prefix unused callback parameters with underscore - Extract repeated inline types into named interfaces ## Validation - ✅ `pnpm typecheck` passes - ✅ `pnpm lint` passes - ✅ `pnpm knip` passes ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7884-Chore-TypeScript-cleanup-remove-254-ts-expect-error-suppressions-2e26d73d3650812e9b48da203ce1d296) by [Unito](https://www.unito.io) --------- Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -483,23 +483,30 @@ export class ManageGroupDialog extends ComfyDialog<HTMLDialogElement> {
|
||||
|
||||
// Rewrite links
|
||||
for (const l of type.links) {
|
||||
// @ts-expect-error l[0]/l[2] used as node index
|
||||
if (l[0] != null) l[0] = type.nodes[l[0]].index
|
||||
// @ts-expect-error l[0]/l[2] used as node index
|
||||
if (l[2] != null) l[2] = type.nodes[l[2]].index
|
||||
}
|
||||
|
||||
// Rewrite externals
|
||||
if (type.external) {
|
||||
for (const ext of type.external) {
|
||||
ext[0] = type.nodes[ext[0]]
|
||||
if (ext[0] != null) {
|
||||
// @ts-expect-error ext[0] used as node index
|
||||
ext[0] = type.nodes[ext[0]].index
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Rewrite modifications
|
||||
for (const id of keys) {
|
||||
// @ts-expect-error id used as node index
|
||||
if (config[id]) {
|
||||
// @ts-expect-error fixme ts strict error
|
||||
orderedConfig[type.nodes[id].index] = config[id]
|
||||
}
|
||||
// @ts-expect-error id used as config key
|
||||
delete config[id]
|
||||
}
|
||||
|
||||
@@ -529,7 +536,7 @@ export class ManageGroupDialog extends ComfyDialog<HTMLDialogElement> {
|
||||
if (nodes) recreateNodes.push(...nodes)
|
||||
}
|
||||
|
||||
await GroupNodeConfig.registerFromWorkflow(types, {})
|
||||
await GroupNodeConfig.registerFromWorkflow(types, [])
|
||||
|
||||
for (const node of recreateNodes) {
|
||||
node.recreate()
|
||||
|
||||
@@ -370,9 +370,10 @@ const ext: ComfyExtension = {
|
||||
const node = app.canvas.graph?.getNodeById(nodeIds[i])
|
||||
const nodeData = node?.constructor.nodeData
|
||||
|
||||
let groupData = GroupNodeHandler.getGroupData(node)
|
||||
if (groupData) {
|
||||
groupData = groupData.nodeData
|
||||
if (!node) continue
|
||||
const groupConfig = GroupNodeHandler.getGroupData(node)
|
||||
if (groupConfig) {
|
||||
const groupData = groupConfig.nodeData
|
||||
// @ts-expect-error
|
||||
if (!data.groupNodes) {
|
||||
// @ts-expect-error
|
||||
@@ -402,7 +403,10 @@ const ext: ComfyExtension = {
|
||||
callback: () => {
|
||||
clipboardAction(async () => {
|
||||
const data = JSON.parse(t.data)
|
||||
await GroupNodeConfig.registerFromWorkflow(data.groupNodes, {})
|
||||
await GroupNodeConfig.registerFromWorkflow(
|
||||
data.groupNodes ?? {},
|
||||
[]
|
||||
)
|
||||
|
||||
// Check for old clipboard format
|
||||
if (!data.reroutes) {
|
||||
|
||||
Reference in New Issue
Block a user