diff --git a/src/button/button.tsx b/src/button/button.tsx index 96e682a..1b6df1f 100644 --- a/src/button/button.tsx +++ b/src/button/button.tsx @@ -1,5 +1,6 @@ -import { Component, tag, VNode } from 'omi'; +import { Component, tag } from 'omi'; +import { TNode } from '../common'; import { classname, getClassPrefix } from '../utils'; type Theme = 'default' | 'primary' | 'danger' | 'warning' | 'success'; @@ -11,7 +12,7 @@ export interface ButtonProps { block?: boolean; disabled?: boolean; ghost?: boolean; - icon?: VNode; + icon?: TNode; loading?: boolean; shape?: 'rectangle' | 'square' | 'round' | 'circle'; size?: 'small' | 'medium' | 'large'; diff --git a/src/common.ts b/src/common.ts index 6addd19..79cfbc4 100644 --- a/src/common.ts +++ b/src/common.ts @@ -1,7 +1,7 @@ import { VNode, WeElement } from 'omi'; export type TElement = T extends undefined ? WeElement : (props: T) => WeElement; -export type TNode = T extends undefined ? VNode : VNode | ((props: T) => VNode); +export type TNode = VNode | ((props: T) => VNode) | object | string | number | boolean | null; export type AttachNodeReturnValue = HTMLElement | Element | Document; export type AttachNode = CSSSelector | ((triggerNode?: HTMLElement) => AttachNodeReturnValue);