📝
tsconfig.jsonとかの設定ファイルの備忘録
Next.jsの設定ファイル
tsconfig.jsonの設定
{
"compilerOptions": {
"baseUrl": "src",
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": false,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitAny": true,
"noFallthroughCasesInSwitch":true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
基本は自動で生成されるもので問題なし
設定時のポイント
allowJs:false
javascriptのファイルは使用しないことを前提にするため許容しない
strict:true
strict系オプションを一律trueで設定できる
alwaysStrict:strict modeで解釈をし、出力されるjavascriptにも"use strict"を追加する
strictNullChecks:Nullとundefinedを使うときは明示的に指定する
strictBindCallApply:Functionのbind() call() apply()メソッドを厳格に型付けする
strictFunctionTypes:関数のパラメータの型をチェックする
strictPropertyInitialization:コンストラクターで値が設定されているかをチェックする
noImplicitAny:型がanyとなる場合エラーとする
noImplicitThis:thisの型がanyとなる場合エラーとする
useUnknownInCatchVariables:catchの例外変数のデフォルトの型がunknownになる
noImplicitReturns:true
関数の戻り値がvoid以外の場合、returnを必須とする
noFallthroughCasesInSwitch:true
switch分にてcase句の中にbreakかreturnを必須とする
noUncheckedIndexedAccess:true
型の未定義のフィールドに対してundefinedが追加される
noImplicitOverride:true
スーパークラスのメソッドをオーバーライドするとき、overrideを必須にする
.pritterrc.jsonの設定
{
"printWidth": 120,
"tabWidth": 2,
"semi": true,
"trailingComma": "all",
"singleQuote": true,
"arrowParens": "always",
"endOfLine": "lf"
}
printWidth:一行の文字数
デフォルト80
tabWidth:インデントのサイズ
デフォルト2
semi:行末にセミコロン
デフォルトtrue
trailingComma:末尾にカンマをつける
デフォルトes5
singleQuote:シングルクォーテーションで囲む
デフォルトfalse
arrowParens:アロー関数の引数をかっこで囲む
デフォルトalways
endOfLine:改行コードの指定
デフォルトlf
.eslintrc.jsonの設定
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended-type-checked",
"next/core-web-vitals",
"plugin:tailwindcss/recommended",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
},
"plugins": ["unused-imports"],
"rules": {
"unused-imports/no-unused-imports": "error"
}
}
Discussion