226文字
1分
編集

Q. ESLintで特定のpropsを禁止にしたい

#A.

eslint-plugin-reactのルールであるforbid-component-propsforbid-dom-propsが利用できる。

Component に対して禁止したければforbid-component-propsを、DOM に対して禁止したければforbid-dom-propsを利用すればいい。

今回は、style prop を全面的に禁止にしたいという相談だったので次のようにすれば良い。

jsx
{
	rules: {
    "react/forbid-component-props": [
      "error",
      {
        forbid: [
	        {
					  "propName": "style",
					  "message": "Use css prop instead"
					}
	      ],
      },
    ],
    "react/forbid-dom-props": [
      "error",
      {
        forbid: [
	        {
					  "propName": "style",
					  "message": "Use css prop instead"
					}
	      ],
      },
    ],
	}
}

#特定の要素に限定または除外したい

どちらのルールも同様の方法で制御することができる。

限定する場合は allowedFor を利用する。

jsx
{
  forbid: [
    {
		  "propName": "style",
		  "allowedFor": ["SomeCompnent"],
		  "message": "Use css prop instead"
		}
  ],
},

特定の要素を除外する場合は、disallowdedFor を利用する。

jsx
{
  forbid: [
    {
		  "propName": "style",
		  "disallowedFor": ["SomeCompnent"],
		  "message": "Use css prop instead"
		}
  ],
},
編集