はじめに
eslintで禁止構文を設定することで、CIでeslintを実行することで自動的に禁止構文を検出できるようにする
設定例
なにを禁止するかは個人や開発チームの方針などによっても変わってくることもあるはずなので、これは例です
.eslintrc.json
{
"rules": {
"no-restricted-syntax": [
"error",
"TSEnumDeclaration",
"TSInterfaceDeclaration",
"ForInStatement",
"ForOfStatement",
"LabeledStatement",
"WithStatement",
"VariableDeclaration[kind='let']"
]
}
}
TSEnumDeclaration
enum使わなくてもとunion typeで足りるため
https://www.kabuku.co.jp/developers/good-bye-typescript-enum
TSInterfaceDeclaration
typescriptの型定義を基本的にType aliasで統一する方針にしてるため
ForInStatement, ForOfStatement, LabeledStatement, WithStatement
を参考にした
VariableDeclaration[kind='let']
ES2015から変数定義は基本的にはconstが推奨されて、letを使う機会はほぼないため
禁止したい構文がある場合の構文の名前の調べ方
でbabelの型定義がみれる