请问哪条ESLint规则强制Interface属性必须指定类型?
如何用ESLint强制TypeScript接口属性必须指定类型?
你定义的以下TypeScript接口中,属性和方法未指定类型却未触发报错:
export interface ITest { name; age; contacting (); }
存在对应的ESLint规则可以强制要求为接口的每个属性和方法指定类型,主要有两个常用规则:
@typescript-eslint/no-implicit-any:这个规则会禁止所有隐式推断为any类型的情况。当接口属性未指定类型时,TypeScript会默认将其推断为any,启用该规则后这种写法会直接触发报错。@typescript-eslint/typedef:这个规则可以更精细化地配置强制类型声明的场景,通过配置propertyDeclaration: true,就能专门针对接口的属性和方法要求必须显式指定类型。
在ESLint配置文件(比如.eslintrc.js)中,你可以这样启用这些规则:
module.exports = { parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], rules: { // 禁止隐式any类型 '@typescript-eslint/no-implicit-any': 'error', // 强制接口属性显式声明类型 '@typescript-eslint/typedef': [ 'error', { propertyDeclaration: true } ] } };
需要注意的是,这两个规则都依赖于@typescript-eslint/eslint-plugin插件,你需要确保已经安装了该插件以及对应的@typescript-eslint/parser解析器。
内容的提问来源于stack exchange,提问作者Robin Chugh
相关产品推荐
相关产品推荐

