跳到主要内容

规则变更说明

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。

下线规则