跳到主要内容

规则变更说明

6.1.0.609

新增规则

6.0.2.636

新增规则

6.0.1.246

新增规则

6.0.0.848

新增规则

6.0.0.828

新增规则

6.0.0.418

新增规则

变更规则

5.1.0.828

新增规则

变更规则

5.0.7.100

新增规则

变更规则

5.0.5.200

变更规则

5.0.3.800

新增规则

变更规则

下线规则

5.0.3.600

新增规则

变更规则

以下规则的部分场景,在5.0.3.600之前的版本检查执行Codelinter检查时不报错,升级至DevEco Studio 5.0.3.600版本后执行Codelinter检查将报错。

// 场景一:支持逻辑表达式的检查
interface GeneratedTypeLiteralInterface {}
declare let foo: GeneratedTypeLiteralInterface;
foo ??= 1; // 升级前不报错,升级后报错
// 场景二:链式表达式中可以推断为非空的场景下,不需要增加判空
interface GeneratedTypeLiteralInterface {
bar: () => number;
}
type Foo = GeneratedTypeLiteralInterface | null;
declare const foo: Foo;
foo?.bar()?.toExponential(); // 升级前不报错,升级后报错
// 函数返回值没有显式定义类型,并且返回值可能为Promise的场景下,函数需要定义为async
function promiseInUnionWithoutExplicitReturnType(p: boolean) { // 升级前不报错,升级后报错
return p ? Promise.resolve(5) : 5;
}
// 配置了optionalityOrder选项,并且类属性中不包含可选变量的场景下,规则中配置的order选项在历史版本中失效了
// 规则配置为"@typescript-eslint/member-ordering": ["error", {"default": {"memberTypes": 'never', "order": 'natural-case-insensitive', "optionalityOrder": 'required-first',}}]
class X {
b: string = '';
a: string = ''; // 升级前不报错,升级后报错
}
// 支持检查interface中的typeMethod
// 规则配置为:"@typescript-eslint/naming-convention": ["error", {selector: 'typeMethod', format: ['PascalCase']}]
interface SOME_INTERFACE {
someMethod: () => void; // 升级前不报错,升级后报错
some_property: string;
}
// 支持检查extend、implements后的类型
// 规则配置为:"@typescript-eslint/ban-types": ["error",{"types": {"Bar": {"message": ""}}}]
interface Bar {}
interface Baz {}
interface Foo extends Bar, Baz {} // 升级前不报错,升级后报错
// 场景一:.finally()被认为是没有有效处理Promise中可能发生的异常
Promise.reject().finally(() => {}) // 升级前不报错,升级后报错
// 场景二:.then()中的第二个参数如果是undefined或者null,被认为是没有有效处理Promise中可能发生的异常
Promise.resolve().then(() => {}, undefined); // 升级前不报错,升级后报错
Promise.resolve().then(() => {}, null); // 升级前不报错,升级后报错
// 支持检查构造函数中的参数类型
class Foo {
constructor(param: boolean = true) {} // 升级前不报错,升级后报错
}
interface GeneratedObjectLiteralInterface {
prop?: string
}

class Test {
// 支持检查私有属性
#testObj: GeneratedObjectLiteralInterface = {}; // 升级前不报错,升级后报错

public test(): void {
this.#testObj?.prop;
}
}

5.0.3.500

新增规则

变更规则

  • @performance/high-frequency-log-check所属规则集由all变更为recommended。

下线规则