Skip to content

Interface extends are supported but not the type ampersand syntax #928

Open
@rvetere

Description

If we use types in Typescript that can be extended with ampersand syntax &, it won't work.

For example, we have a pretty funky type definition like this in our repository:

export type ILinkProps = ITypeAgnosticLinkProps &
  Omit<INextLinkProps, "children"> & {
    /**
     * Disables a link, visually and functionally
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Sets `target="_blank"` and `rel="noreferrer"` explicitly.
     * If props contain `target="_blank"` and `rel="noreferrer"`
     * this will be set to isExternal automatically.
     * _NOTE:_ This is a pure technical flag, if you're looking for a visual
     * representation of an external link, use the `icon` and the `iconPosition` prop.
     */
    isExternal?: boolean;
  };

First it won't work because of the Omit, but if that would be solved (or deleted), it still doesn't work as the & is not recognized as extends.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions