编译为JavaScript后TypeScript出现问题-“;重复标识符错误“;

编译为JavaScript后TypeScript出现问题-“;重复标识符错误“;,javascript,node.js,typescript,visual-studio,npm,Javascript,Node.js,Typescript,Visual Studio,Npm,在VSCode中,我正在使用TypeScript,当我编译到JavaScript时遇到一个问题,IDE会抱怨某些元素(类、变量等)是重复的。这是因为它们存在于TypeScript文件和作为结果创建的JavaScript文件中 我想这是一个相当普遍的问题,但要澄清两件事: 这似乎不会阻止TypeScript编译 只有当.js文件在IDE中打开(VSCode)时才会发生这种情况 下面是一张图片,显示了我的意思: 我在使用npm或命令行方面不是很有经验,因此我不确定是否无意中启用了此行为或遗漏了某些

在VSCode中,我正在使用TypeScript,当我编译到JavaScript时遇到一个问题,IDE会抱怨某些元素(类、变量等)是重复的。这是因为它们存在于TypeScript文件和作为结果创建的JavaScript文件中

我想这是一个相当普遍的问题,但要澄清两件事:

  • 这似乎不会阻止TypeScript编译
  • 只有当.js文件在IDE中打开(VSCode)时才会发生这种情况
  • 下面是一张图片,显示了我的意思:

    我在使用npm或命令行方面不是很有经验,因此我不确定是否无意中启用了此行为或遗漏了某些内容-这显然是不可取的,因此我想知道是否有人能想到可能是什么导致了问题?首先,这更可能是VSCode问题还是TypeScript问题

    我已经研究了一些类似的问题,例如,但似乎没有一个问题与我遇到的问题完全相同


    非常感谢

    我相信你的typescript和javascript都在同一个文件夹中。你能分享你的tsconfig文件吗?需要注意的重要一点是
    outdir
    ,它将确保编译后的文件不会保存在同一个目的地

    {
      "compilerOptions": {
    
        "target": "es6",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
        "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
        "sourceMap": true,                     /* Generates corresponding '.map' file. */
        "outDir": "dist",                        /* Redirect output structure to the directory. */
    
        "strict": true,                           /* Enable all strict type-checking options. */
    
    
        "moduleResolution": "node",            /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
        "esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
    
    
    
        "skipLibCheck": true,                     /* Skip type checking of declaration files. */
        "forceConsistentCasingInFileNames": true  /* Disallow inconsistently-cased references to the same file. */
      }
    }
    
    json,这将允许您运行npm命令,如npm start

    {
    “名称”:“学习”,
    “版本”:“1.0.0”,
    “说明”:“,
    “main”:“dist/target_group.js”,
    “脚本”:{
    “调试”:“tsc&&node--nolazy dist/target_group.js”,
    “开始”:“tsc&&node dist/target_group.js”,
    “测试”:“echo\”错误:未指定测试\“&退出1”
    },
    “作者”:“作者”,
    “许可证”:“ISC”,
    “依赖项”:{
    “@types/node”:“^14.11.1”,
    “aws sdk”:“^2.756.0”,
    “dotenv”:“^8.2.0”
    },
    “依赖性”:{
    “tslint”:“^5.12.1”,
    “类型脚本”:“^3.3.3”
    }
    }
    
    Hi Shubham,有趣的是,我的根文件夹中似乎没有tsconfig文件-这可能吗?我在哪里可以找到它?你可能必须创建它。我将编辑我的答案并复制package.json和tsconfig。根据您的需要进行更改。如果您看到之前的消息,请忽略它-我以为我已经解决了问题,但问题仍然存在。这是我的package.json文件:
    {“name”:“ts sandbox”,“version”:“1.0.0”,“description”:“main”:“index.js”,“scripts”:{“test”:“echo”错误:未指定测试“&&exit 1”,“comp”:“tsc--outDir js sandbox.ts”},“关键字”:[],“author”:“许可证”:“ISC”,“依赖项”:“{“eslint”:“^7.9.0”,“typescript”:“^4.0.3”}
    创建一个tsconfig文件似乎已经修复了它,是的。谢谢