从命令行读取参数 \- 错误 TS2304:找不到名称“进程”

新手上路,请多包涵

使用 TypeScript 版本 1.7.5。

我正在编写一个 nodeJS 程序,我想在其中读取用户传递的命令行参数(2 个整数)。在原始 JavaScript 中一切正常,但 TypeScript 出现了问题。

什么时候

进程.argv

在 TypeScript 文件中使用,当它被编译为 JavaScript 时编译器错误,因为它不识别“process”变量。

错误 TS2304:找不到名称“进程”

我曾尝试在文件顶部声明一个新的 var“process”,但这会覆盖本机变量并且它不再包含参数……

我想将所有代码都保留在 TypeScript 中,只在构建时编译为 JavaScript。此问题的最佳解决方法是什么?

原文由 Rohit Falor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 382
2 个回答

更新:2016 年 9 月

您需要确保 Node 的类型定义可用。执行此操作的方法取决于您使用的 TypeScript 版本。

打字稿 1

使用 类型 来安装定义。

 typings install --save --global env~node

请务必在您的 tsconfig.json typings/index.d.ts 。要么将它包含在 "files" 数组中:

 "files": ["typings/index.d.ts"]

或者确保它从 "exclude" 数组中省略。

打字稿 2

在 TypeScript 2 中,可以 通过 npm@types 范围内安装定义。

 npm install --save-dev @types/node

原始答案:2016 年 2 月

您必须确保可以使用适当的类型定义。为此使用 typings 包管理器。安装节点的定义如下:

 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" />

原文由 McMath 发布,翻译遵循 CC BY-SA 3.0 许可协议

当寻找“无法找到名称‘进程’”时,这个问题位于谷歌结果的顶部,所以我将在此处将我的 2 美分添加到一个不太不相关的问题。

如果您需要消除使用 if(process.env.NODE_ENV === "production") 时的错误,使用 webpack 剥离生产中的一些代码,只需在该行之前添加以下声明:

 declare var process: {
   env: {
       NODE_ENV: string
   }
};

原文由 Jan Kalfus 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题