useExportType
Ce contenu n’est pas encore disponible dans votre langue.
Summary
Section titled “Summary”- Rule available since: v1.5.0
- Diagnostic Category: lint/style/useExportType
- This rule is recommended, which means is enabled by default.
- This rule has a safe fix.
- The default severity of this rule is warning.
- Sources:
- Inspired from @typescript-eslint/consistent-type-exports
 
- Inspired from 
How to configure
Section titled “How to configure”{  "linter": {    "rules": {      "style": {        "useExportType": "error"      }    }  }}Description
Section titled “Description”Promotes the use of export type for types.
TypeScript allows adding the type keyword on an export to indicate that the export doesn’t exist at runtime.
This allows compilers to safely drop exports of types without looking for their definition.
The rule ensures that types are exported using a type-only export.
It also groups inline type exports into a grouped export type.
Examples
Section titled “Examples”Invalid
Section titled “Invalid”interface I {}export { I };code-block.ts:2:8 lint/style/useExportType  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ⚠ All exports are only types.
  
    1 │ interface I {}
  > 2 │ export { I };
      │        ^^^^^^
    3 │ 
  
  ℹ Using export type allows compilers to safely drop exports of types without looking for their definition.
  
  ℹ Safe fix: Use export type.
  
    2 │ export·type·{·I·};
      │        +++++      
type T = number;export { T };code-block.ts:2:8 lint/style/useExportType  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ⚠ All exports are only types.
  
    1 │ type T = number;
  > 2 │ export { T };
      │        ^^^^^^
    3 │ 
  
  ℹ Using export type allows compilers to safely drop exports of types without looking for their definition.
  
  ℹ Safe fix: Use export type.
  
    2 │ export·type·{·T·};
      │        +++++      
import type { T } from "./mod.js";export { T };code-block.ts:2:8 lint/style/useExportType  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ⚠ All exports are only types.
  
    1 │ import type { T } from “./mod.js”;
  > 2 │ export { T };
      │        ^^^^^^
    3 │ 
  
  ℹ Using export type allows compilers to safely drop exports of types without looking for their definition.
  
  ℹ Safe fix: Use export type.
  
    2 │ export·type·{·T·};
      │        +++++      
export { type X, type Y };code-block.ts:1:8 lint/style/useExportType  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ⚠ All exports are only types.
  
  > 1 │ export { type X, type Y };
      │        ^^^^^^^^^^^^^^^^^^^
    2 │ 
  
  ℹ Using export type allows compilers to safely drop exports of types without looking for their definition.
  
  ℹ Safe fix: Use export type.
  
    1   │ - export·{·type·X,·type·Y·};
      1 │ + export·type·{·X,·Y·};
    2 2 │   
  
class C {}function f() {}export { C, f };This rules checks only the identifiers that are defined in a file. It doesn’t warn against a type exported as a value in a re-export clause such as:
export { TypeA } from "./mod.ts"Related links
Section titled “Related links”Copyright (c) 2023-present Biome Developers and Contributors.