ESLintなどのフロントエンドまわりのツールでは、設定ファイルのフォーマットとして、JSON、YAML、JavaScript、TypeScriptなど、様々なフォーマットがサポートされています。
TypeScriptがサポートされていれば設定に対して型をつけられるので、間違いをある程度防ぐことができるでしょう。
ここでは、ESLintのようにTypeScriptがサポートされていない設定ファイルに対して、型をつける方法を紹介します。
TypeScriptがサポートされている場合
JestのようにTypeScriptがサポートされていれば、普通にTypeScriptで書くだけです。
import type { Config } from 'jest'
const config: Config = {
verbose: true
}
export default config
TypeScriptがサポートされていない場合
ESLintのようにTypeScriptがサポートされていない場合でも、型定義さえあればJSDocコメントで型をつけることができます。
たとえば、ESLintの場合は次のように書くことができます。
// @ts-check
/** @typedef {import('eslint').ESLint.ConfigData} ConfigData */
/** @type {ConfigData} */
const config = {
extends: [
'@munierujp/eslint-config-typescript'
],
parserOptions: {
project: './tsconfig.json'
}
}
module.exports = config
ただし、型定義の場所がドキュメントに記載されていない場合は、自分で探し出す必要があります。
もっとも、著名なツールならGitHubを@ts-check path:<設定ファイル名>
のようなクエリで検索すれば使用例が見つかるでしょう。