TypeScript의 과부하 함수가 ESLight의 질책을 받지 않도록 하기

3514 단어 TypeScriptESLinttech

함수 과부하란


예가 좀 좋지 않지만 이런 느낌은 매개 변수에 따라 되돌아오는 값의 유형을 바꿀 수 있다.
function calc(props: {a: number, b: undefined}): undefined
function calc(props: {a: number, b: number}): number
function calc(props: {a: number, b?: number }}) {
  // 
}
단, ESLilt에 가입하여 extends로 eslint:recommmended를 진행하면 오류가 발생합니다
Error: 'props' is defined but never used.  no-unused-vars
Error: 'calc' is already defined.  no-redeclare
Error: 'props' is defined but never used.  no-unused-vars
Error: 'calc' is already defined.  no-redeclare

ESLit 오류 방지

  • TSSLint에 Parser 및 eslint-Plugin
  • 추가
    yarn add -D @typescript-eslint/parser @typescript-eslint/eslint-plugin
    
  • .eslintrc에plugen:@typescript-eslint/recommmended
  • 추가
    {
      "extends": [
        "eslint:recommended",
    +    "plugin:@typescript-eslint/recommended",
      ]
    }
    

    해설


    함수의 과부하 자체는 JavaScript에 없는 기능이기 때문에 ESLight rule에 존재하지 않습니다. Tsint를 사용해야 할 것 같습니다.
    따라서 TSLint를 넣은 플러그인@typescript-eslint/eslint-plugin과 해상도@typescript-eslint/parser로 ESLight에서 TSLint의 rule를 사용할 수 있도록 한 후 추가plugin:@typescript-eslint/recommended로 해결한다.
    구체적으로 어떤 규칙이 해결됐는지는 아직 조사되지 않았지만, 이때이기 때문에 리컴메디드로 해결하는 것이 가장 좋다고 판단했다.
    TSLint가 deprecated인 것 같아서 전부 ESLight로 하면 될 것 같아서 좀 놀랐어요.

    좋은 웹페이지 즐겨찾기