From 23d39f050b35ff9d20b9b1c1eb598371a35f00c0 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:25:42 +0900 Subject: [PATCH] add comment --- packages/frontend/src/os.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts index 258ae7966e..ac1f19f707 100644 --- a/packages/frontend/src/os.ts +++ b/packages/frontend/src/os.ts @@ -166,14 +166,16 @@ type ComponentProps = PropsWithRefs>; type Decrement = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; type OverloadToUnion = D extends 0 ? never : T extends (...args: infer A) => infer R ? ((...args: A) => R) | OverloadToUnion R) & infer Rest ? Rest : never, Decrement[D]> : never; -type ComponentEmitsObject, IE = OverloadToUnion> = { +type ComponentEmitsObject>> = { [K in IE extends (evName: infer U, ...args: any[]) => any ? U extends string ? U : never : never]: IE extends (evName: K, ...args: infer A) => infer R ? (...args: A) => R : never; }; +// NOTE: ジェネリック型つきのコンポーネントでは、emitsの型推論がうまく働かない(型変数を取り出すことはできないため) +// OverloadToUnionに再帰回数の制限を設けているのもそのため export function popup = CP>( component: T, props: PropsWithRefs

, - events: Partial>>> = {}, + events: Partial>> = {}, ): { dispose: () => void } { markRaw(component); @@ -307,8 +309,6 @@ type ActionsAction = { danger?: boolean; }; -// TODO: const T extends ... にしたい -// https://zenn.dev/general_link/articles/813e47b7a0eef7#const-type-parameters export function actions(props: { type: 'error' | 'info' | 'success' | 'warning' | 'waiting' | 'question'; title?: string;