declare interface Fn { (...arg: T[]): T; } // 任意对象 declare interface IObj { [key: string]: T; [key: number]: T; } declare function parseInt(s: string | number, radix?: number): number; declare function parseFloat(string: string | number): number; declare type Dictionary = Record; declare type Nullable = T | null; declare type RefInstanceType = { $: T; } | null; declare type RefType = T | null; declare type CustomizedHTMLElement = HTMLElement & T; declare type Indexable = { [key: string]: T; }; declare type KeyString = { [key: string]: T; }; type DeepPartial = { [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial[] : T[P] extends object ? RecursivePartial : T[P]; }; type SelectOptions = { label: string; value: any; }[]; type EmitType = (event: string, ...args: any[]) => void; type TargetContext = '_self' | '_blank';