繁体   English   中英

声明第三方库的定义的属性

[英]Declaring defined property of a third party library

所以我正在使用一个名为Evergreen的React UI库,该库未键入。

我正在写一个我正在使用的组件的声明,当我碰到一点障碍时,菜单在React中是这样构造的:

<Menu>
    <Menu.Group>
        <Menu.Item>Share...</Menu.Item>
        <Menu.Item>Move...</Menu.Item>
        <Menu.Item>Rename...</Menu.Item>
    </Menu.Group>
    <Menu.Divider />
    <Menu.Group>
        <Menu.Item intent="danger">Delete...</Menu.Item>
    </Menu.Group>
</Menu>

但是Menu.GroupMenu.ItemMenu,Divider Menu.Item错误,指出Property 'Divider' does not exist on type 'typeof Menu'

当前菜单的声明如下:

export interface IMenuProps extends ICSSProps {
    is?: any;
    onSelect?: any;
    icon?: any;
    children?: any;
    secondaryText?: any;
    appearance?: string;
    intent?: any;
    theme?: any;    
}
export class Menu extends React.PureComponent<IMenuProps> {}

我对TS相当陌生,所以完全不知道如何声明它们,我尝试添加Divider: () => void;东西Divider: () => void; 到IMenuProps,并且我尝试添加public Divider: any; 到菜单类,但没有运气(这并不令我感到惊讶)!

如果有人能指出正确的方向,我将非常感激!

谢谢!

弄清楚了! 点表示法组件需要在类内部定义为无状态功能组件,并通过该接口传递接口! 这是一个片段,以防有人需要。

export class Menu extends React.PureComponent<IMenuProps> {

        public static Group: React.SFC<IMenuGroup>;
        public static Divider: React.SFC<IMenuDivider>;
        public static Item: React.SFC<IMenuItem>;

    }

    export interface IMenuGroup extends ICSSProps {
        title: string;
        group: string;
    }

    export interface IMenuDivider extends ICSSProps {
        title: string;
        divider: string;
    }

    export interface IMenuItem extends ICSSProps {
        title: string;
        item: string;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM