禁用单行的 `noImplicitAny` TS 规则

问题描述 投票:0回答:2

我在

"noImplicitAny": true
中启用了
tsconfig.json
,并且我的代码空间中出现
TS7053: Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{}'
错误。

我想在一行中禁用此规则,我尝试使用下面的代码,但它不起作用。

const mockElement = () => ({
  mount: jest.fn(),
  destroy: jest.fn(),
  on: jest.fn(),
  update: jest.fn(),
});

const mockElements = () => {
  const elements = {};
  return {
    create: jest.fn((type) => {
      // getting error from the bellow line
      // tslint:disable-next-line: no-implicit-any
      elements[type] = mockElement();
      // getting error from the bellow line
      // tslint:disable-next-line: no-implicit-any
      return elements[type];
    }),
    getElement: jest.fn((type) => {
      // getting error from the bellow line
      // tslint:disable-next-line: no-implicit-any
      return elements[type] || null;
    }),
  };
};

对于仅针对单行禁用规则有什么建议吗? (在 tsconfig.json 中设置

"noImplicitAny": false
可以工作,但不可接受,因为它根本禁用了规则)

typescript tslint disable
2个回答
0
投票

您可以使用 @ts-expect-error ts 指令来忽略错误,例如:

// @ts-expect-error Parameter 'name' implicitly has an 'any' type.ts(7006)

更多信息:https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-9.html#-ts-expect-error-comments


-3
投票

这是 ESLint 的东西,而不是打字稿编译器的东西。在你的源中尝试这个

// eslint-disable-next-line @typescript-eslint/no-explicit-any

tho,这是针对 EXplicit any 的,但我认为您可以通过在您需要的一行上显式定义它来解决问题?

© www.soinside.com 2019 - 2024. All rights reserved.