禁止不必要的模板表达式
禁止不必要的模板表达式。
🔒
在 "plugin:@typescript-eslint/strict-type-checked"
中扩展 ESLint 配置 可以启用此规则。
🔧
此规则报告的一些问题可以通过 --fix
ESLint 命令行选项 自动修复。
💭
此规则需要 类型信息 才能运行。
此规则报告包含不必要的替换表达式(也称为嵌入表达式或字符串插值)的模板字面量,这些表达式可以简化。
从
no-useless-template-literals
迁移此规则以前称为 no-useless-template-literals
。我们鼓励用户迁移到新名称 no-unnecessary-template-expression
,因为旧名称将在 typescript-eslint 的未来主要版本中删除。
新名称是具有相同功能的直接替换。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-template-expression": "error"
}
};
在游乐场中尝试此规则 ↗
示例
- ❌ 错误
- ✅ 正确
// Static values can be incorporated into the surrounding template.
const ab1 = `${'a'}${'b'}`;
const ab2 = `a${'b'}`;
const stringWithNumber = `${'1 + 1 = '}${2}`;
const stringWithBoolean = `${'true is '}${true}`;
// Some simple expressions that are already strings
// can be rewritten without a template at all.
const text = 'a';
const wrappedText = `${text}`;
declare const intersectionWithString: string & { _brand: 'test-brand' };
const wrappedIntersection = `${intersectionWithString}`;
在游乐场中打开// Static values can be incorporated into the surrounding template.
const ab1 = `ab`;
const ab2 = `ab`;
const stringWithNumber = `1 + 1 = 2`;
const stringWithBoolean = `true is true`;
// Some simple expressions that are already strings
// can be rewritten without a template at all.
const text = 'a';
const wrappedText = text;
declare const intersectionWithString: string & { _brand: 'test-brand' };
const wrappedIntersection = intersectionWithString;
在游乐场中打开信息
此规则不旨在标记没有替换表达式的模板字面量,这些字面量可以写成普通字符串。也就是说,此规则不会帮助您将 `this`
转换为 "this"
。如果您正在寻找这样的规则,您可以配置 @stylistic/ts/quotes
规则来执行此操作。
选项
此规则不可配置。
何时不使用它
当您想允许模板字面量中的字符串表达式时。
相关
类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 linting。如果您在启用类型检查的规则后遇到性能下降,请参阅 性能故障排除。