Skip to content

Enhancement: [consistent-type-exports] Check * exports to see if all exported values are types #9986

Closed
@NotWoods

Description

@NotWoods

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/consistent-type-exports/

Description

Currently, consistent-type-exports only checked named exports and re-exports. However, sometimes we might write a file that only contains types & interfaces. It would be good to enforce using export type * instead of export * if all the exports are types.

Fail

// Component.props.ts
export interface Props {}

// Component.ts
export function Component(props: Props) {}

// index.ts
export * from './Component.props'
export * from './Component'

Pass

// Component.props.ts
export interface Props {}

// Component.ts
export function Component(props: Props) {}

// index.ts
export type * from './Component.props' // changed
export * from './Component'

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueenhancement: plugin rule optionNew rule option for an existing eslint-plugin rulelocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions