JavaScript 유형을 안전하게 만드십시오

JavaScript 파일을 안전하게 입력하여 JS 파일이 마치 타이프스크립트인 것처럼 느껴질 것입니다. 이는 모든 JavaScript 프로젝트에서 수행할 수 있지만 반응에 중점을 둘 것입니다.
create-react-app 프로젝트가 있습니다. 프로젝트의 루트에 jsconfig.json 파일을 추가해 보겠습니다.



jsconfig.json 파일은 tsconfig.jsonallowJs가 참인 checkJs입니다.

{
  "compilerOptions": {
    "incremental": true,
    "target": "es2020",
    "composite": true,
    "module": "ESNext",
    "lib": [
      "DOM",
      "esnext",
      "ES2015",
      "ES2016",
      "ES2017",
      "ES2018",
      "ES2019"
    ],
    "allowJs": true,
    "checkJs": true,
    "jsx": "preserve",
    "declaration": true,
    "reactNamespace": "React",
    "declarationMap": true,
    "sourceMap": true,
    "outDir": "typings",
    "rootDir": ".",
    "tsBuildInfoFile": "./tsBuildInfoFile.json",
    "isolatedModules": true,
    "moduleResolution": "node",
    "baseUrl": "./node_modules",
    "importHelpers": true,
    "noImplicitAny": false,
    "resolveJsonModule": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "assumeChangesOnlyAffectDirectDependencies": true,
    "allowUnusedLabels": false,
    "paths": {
      "*": [
        "./*",
        "./@types/*"
      ]
    },
    "types": [
      "node",
      "react"
    ],
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": false,
    "traceResolution": true,
    "skipLibCheck": false,
    "forceConsistentCasingInFileNames": true,
    "pretty": true
  },
  "typeAcquisition": {
    "enable": true
  },
  "exclude": [
    "node_modules",
  ],
  "include": [
    "src",
    "type"
  ]
}


다음으로 폴더 호출.vscode을 만들고 그 안에 파일을 추가해야 합니다settings.json.



{
    "javascript.suggestionActions.enabled": true,
  "javascript.inlayHints.parameterNames": "all",
  "javascript.inlayHints.variableTypes.enabled": true,
  "javascript.inlayHints.parameterTypes.enabled": true,
  "javascript.inlayHints.functionLikeReturnTypes.enabled": true,
  "javascript.autoClosingTags": true,
  "javascript.format.enable": true,
  "javascript.format.insertSpaceAfterCommaDelimiter": true,
  "javascript.format.insertSpaceAfterConstructor": true,
  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
  "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": true,
  "javascript.format.insertSpaceAfterSemicolonInForStatements": true,
  "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": true,
  "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
  "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,
  "javascript.format.placeOpenBraceOnNewLineForFunctions": false,
  "javascript.format.semicolons": "insert",
  "javascript.format.quoteStyle": "double",
  "javascript.inlayHints.enumMemberValues.enabled": true,
  "javascript.inlayHints.parameterNames.enabled": "all",
  "javascript.inlayHints.propertyDeclarationTypes.enabled": true,
  "javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName": true,
  "javascript.preferences.importModuleSpecifier": "shortest",
  "javascript.preferences.importModuleSpecifierEnding": "auto",
  "javascript.preferences.jsxAttributeCompletionStyle": "auto",
  "javascript.preferences.quoteStyle": "double",
  "javascript.preferences.useAliasesForRenames": true,
  "javascript.referencesCodeLens.enabled": true,
  "javascript.suggest.completeJSDocs": true,
}







좋은 웹페이지 즐겨찾기