useExportType
¥Summary
-
规则生效日期:
v1.5.0¥Rule available since:
v1.5.0 -
¥Diagnostic Category:
lint/style/useExportType -
此规则为推荐规则,默认启用。
¥This rule is recommended, which means is enabled by default.
-
此规则包含 safe 修复程序。
¥This rule has a safe fix.
-
此规则的默认严重级别为 warning。
¥The default severity of this rule is warning.
-
来源:
¥Sources:
-
灵感来自
@typescript-eslint/consistent-type-exports¥Inspired from
@typescript-eslint/consistent-type-exports
-
¥How to configure
{ "linter": { "rules": { "style": { "useExportType": "error" } } }}¥Description
提倡使用 export type 作为类型。
¥Promotes the use of export type for types.
TypeScript 允许在 export 类型上添加 type 关键字,以表明运行时不存在 export 类型。这允许编译器安全地丢弃类型的导出,而无需查找其定义。
¥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.
该规则确保使用仅类型的 export 导出类型。它还将内联类型导出分组到分组的 export type 中。
¥The rule ensures that types are exported using a type-only export.
It also groups inline type exports into a grouped export type.
¥Examples
¥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 │
¥Valid
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
Biome v2.1 中文网 - 粤ICP备13048890号