Roh*_*lor 39 javascript command-line-arguments node.js typescript
使用TypeScript版本1.7.5.
我正在编写一个nodeJS程序,我想在其中读取用户传递的命令行参数(2个整数).在原始JavaScript中一切正常,但TypeScript会出现问题.
什么时候
process.argv用于TypeScript文件,当它编译成JavaScript时编译器错误,因为它不识别"进程"变量.
error TS2304: Cannot find name 'process'
我已经尝试在文件顶部声明一个新的var"process",但是它会覆盖原生变量并且它不再包含参数......
我想将所有代码保存在TypeScript中,只在构建时编译为JavaScript.这个问题的最佳解决方法是什么?
McM*_*ath 49
您需要确保Node的类型定义可用.执行此操作的方法取决于您使用的TypeScript版本.
使用" 类型"安装定义.
typings install --save --global env~node
请务必包含typings/index.d.ts在您的tsconfig.json文件中.将它包含在"files"数组中:
"files": ["typings/index.d.ts"]
或者确保从"exclude"数组中省略它.
npm install --save-dev @types/node
您必须确保可以使用适当的类型定义.使用打字包管理器.按如下方式安装节点的定义:
typings install --save --ambient node
现在,有几种方法可以确保编译器可以使用这些定义.首选方法是设置tsconfig文件,如下所示:
{
  "exclude": [
    "typings/browser.d.ts",
    "typings/browser",
    "node_modules"
  ]
}
或者,或者:
{
  "files": [
    "typings/main.d.ts"
  ]
}
如果您没有使用tsconfig文件,则可以使用主条目文件顶部的引用,如下所示:
/// <reference path="path/to/typings/main.d.ts" />
Hon*_*fus 10
在查找"无法找到名称'流程'时,此问题位于Google搜索结果的首位,因此我将在此处添加2美分给一个不太相关的问题.
如果你需要在使用if(process.env.NODE_ENV === "production")webpack去除生产中的某些代码时摆脱错误,只需在行之前添加以下声明:
declare var process: {
   env: {
       NODE_ENV: string
   }
};
小智 9
TypeScript 2 - Windows用户
由于这个问题在谷歌的顶部是"ts2304无法找到名称'过程'"我想为Windows用户添加一些帮助.我试图从配置文件中使用环境变量,并且遇到了这个错误.
TSError:无法编译TypeScript.
找不到名称'process'-(2304)
我终于将它添加到我的tsconfig.json:
{
  "compilerOptions": {
    "typeRoots": [
      "./node_modules/@types"
    ]
  }
}
这与tsconfig.json和node_modules在同一目录级别,但由于某种原因,编译器只是没有看到它.奇怪的是这个错误只发生在process.env变量上,因为我的其余代码编译没有问题.
小智 5
我在OSX上的完整解决方案将上面的一些内容结合在一起。error TS2304: Cannot find name 'process'.我的用例是将React项目从jsx / js部分迁移到tsx / ts。
yarn add -D @types/nodetsconfig.json为包括"typeRoots": ["./node_modules/@types"]import { } from 'node';在文件的顶部有错误使用Typescript v2.7.1时,我需要全部3个步骤