tsconfig/bases 소개!

8522 단어 TypeScripttech

결론


$ yarn add -D @tsconfig/strictest
tsconfig.json
{
    "extends": "@tsconfig/strictest/tsconfig.json",
}
이상은!

tsconfig.제이슨은 어떻게 썼어요?

tsconfig.json 이렇게 쓰신 분 있나요?
tsconfig.json
{
    "compilerOptions": {
        "strict": true,
        "allowUnusedLabels": false,
        "allowUnreachableCode": false,
        "exactOptionalPropertyTypes": true,
        "noFallthroughCasesInSwitch": true,
        "noImplicitOverride": true,
        "noImplicitReturns": true,
        "noPropertyAccessFromIndexSignature": true,
        "noUncheckedIndexedAccess": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "lib": ["dom"],
        "outDir": "./dist",
        // ...以下略
    }
}
그리고 여러 항목에서 복사하고 반복해서 사용합니다...
뭐, 전혀 상관없는 것 같아, 이런 것도 있어!소개 좀 해주세요!

tsconfig/bases에서간소화 json


결과적으로 우리는 "strict": true하기로 결정했다. "noUncheckedIndexedAccess": true해야 하지 않겠는가. 더 나아가 말하면 형이 엄격할수록 즐겁다는 것은 떨림이 아니겠는가()
그런 거. "어쨌든 딱딱하게 하고 싶어!"이런 설정을 묵인할 수 있는 편리한 게 있어요.
https://github.com/tsconfig/bases
이거다!
작은 것들README에 관해서는 보기 좋지만, @tsconfig/strictest를 사용하면 견고형 검사 옵션이 모두 실려 있습니다.
사용 방법은 정상적으로 설치하십시오
$ yarn add -D @tsconfig/strictest
tsconfig.jsonextends에서만 지정
tsconfig.json
{
    "extends": "@tsconfig/strictest/tsconfig.json",
}
굉장히 쉽죠?
이것을 지정하면 아래의 내용이 적용됩니다.
https://github.com/tsconfig/bases/blob/27f9097a02f960e351d69bca8dd4c7581d70e1b6/bases/strictest.json
우리 팀에 지나치게 엄격한 규칙이 있다면 명확하게 끄면 돼.
그러니 꼭 사용해 보세요!

번외편: "importsNotUsedAsValues": "error"

strictest에는 "importsNotUsedAsValues": "error"의 옵션이 있지만 이것은 유형 정보import만을 위한 경우import type는 반드시 import로 규정되어 있다.구체적으로 말하면
// これはエラーになる
import { Foo } from "./foo";

const foo: Foo = {};

// この場合正しいのは
import type { Foo } from "./foo";
// これはエラーにならない
import { Foo } from "./foo";

const foo = new Foo();
이런 느낌은 있지만 하나하나 수동으로 관리할 수는 없다.실제로 @typescript-eslint/eslint-plugin의 규칙 중에는 이것을 자동으로 수정하는 규칙이 있기 때문에 그것을 설정하는 것이 좋다.
.eslintrc
{
    "rules": {
        "@typescript-eslint/consistent-type-imports": "error",
    }
}
또한 이 규칙도 @typescript-eslint/recommended의 설정에 포함되어 있기 때문에 상술한 대로 지정할지 여부
.eslintrc
{
    "extends": ["plugin:@typescript-eslint/recommended"]
}
그래도 괜찮아.

좋은 웹페이지 즐겨찾기