是否有针对缺失的 typescript Type 成员的 linter?

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

我正在尝试找到一种方法,当调用 Type 成员但不存在时触发控制台 lint 错误(甚至构建错误)。目前,我必须知道并打开有问题的文件才能看到错误。这使得将错误发送到生产环境变得很容易。看看 eslint 和 typescript-eslint,似乎没有这方面的规则。有人建议添加此检查吗?

我正在使用 Vite 构建工具,以及通过 Bitbucket 的 SonarCloud。

eslint 配置

module.exports = {
    root: true,
    env: { browser: true, es2020: true },
    extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended'],
    ignorePatterns: ['dist', '.eslintrc.cjs'],
    parser: '@typescript-eslint/parser',
    plugins: ['react-refresh'],
    rules: {
        'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
        '@typescript-eslint/no-explicit-any': 'warn'
    }
}

问题

export enum ExampleItem {
   Item1: 'Item 1',
   Item2: 'Item 2',
   Item3: 'Item 3' //was deleted from file without a proper regression test
}

const item3 = ExampleItem.Item3; //does not exist, how to error this in console?

'@typescript-eslint/no-unsafe-assignment'
fake - 发现错误。但是添加
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
会禁用文件中的特定错误,并且仍然会留下丢失的 Type 成员而不对其进行标记。

而且,这可能真的要求为任何类型的缺失对象成员找到一个 linter。

typescript eslint typescript-eslint
1个回答
0
投票

Eslint 不会将此标记为错误(因为它不验证类型),但 TypeScript 的类型检查器 (

tsc
) 会。

export enum ExampleItem {
   Item1 = 'Item 1',
   Item2 = 'Item 2',
}

const item3 = ExampleItem.Item3; // Error: Property 'Item3' does not exist on type 'typeof ExampleItem'. 

游乐场

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