javascript - 如何在 Angular 2 项目中包含明确类型的文件

标签 javascript angularjs node.js typescript npm

我正在开发一个 angular 2/node.js 应用程序,我目前正在尝试为该项目安装类型。以前当我运行服务器并启动 typescript 编译器时,我会得到以下日志:

bash-3.1$ npm start

> support-dashboard@1.0.0 start c:\MEAN_project
> concurrently "npm run tsc:w" "node server.js"

[1] Magic happens on port 8080
[0]
[0] > support-dashboard@1.0.0 tsc:w c:\MEAN_project
[0] > tsc -w
[0]
[0] node_modules/angular2/platform/browser.d.ts(78,90): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/application_ref.d.ts(38,88): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/application_ref.d.ts(92,42): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/application_ref.d.ts(151,33): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.d.ts(23,15): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/core/change_detection/differs/default_keyvalue_differ.d.ts(25,16): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/core/di/reflective_provider.d.ts(103,123): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/core/di/reflective_provider.d.ts(103,165): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/core/linker/component_resolver.d.ts(8,53): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/linker/component_resolver.d.ts(12,44): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(59,148): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(100,144): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(105,139): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/core/linker/dynamic_component_loader.d.ts(106,135): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/async.d.ts(27,33): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/async.d.ts(28,45): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/collection.d.ts(1,25): error TS2304: Cannot find name 'MapConstructor'.
[0] node_modules/angular2/src/facade/collection.d.ts(2,25): error TS2304: Cannot find name 'SetConstructor'.
[0] node_modules/angular2/src/facade/collection.d.ts(4,27): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(4,39): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(7,9): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(8,30): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(11,43): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(12,27): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(14,23): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(15,25): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/collection.d.ts(100,41): error TS2304: Cannot find name 'Set'.
[0] node_modules/angular2/src/facade/collection.d.ts(101,22): error TS2304: Cannot find name 'Set'.
[0] node_modules/angular2/src/facade/collection.d.ts(102,25): error TS2304: Cannot find name 'Set'.
[0] node_modules/angular2/src/facade/lang.d.ts(4,17): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/lang.d.ts(5,17): error TS2304: Cannot find name 'Set'.
[0] node_modules/angular2/src/facade/lang.d.ts(71,59): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/facade/promise.d.ts(2,14): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(8,32): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(9,38): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(10,35): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(10,93): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(11,34): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(11,50): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(12,32): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(12,149): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/facade/promise.d.ts(13,43): error TS2304: Cannot find name 'Promise'.
[0] node_modules/angular2/src/platform/browser/browser_adapter.d.ts(75,33): error TS2304: Cannot find name 'Map'.
[0] node_modules/angular2/src/platform/dom/dom_adapter.d.ts(85,42): error TS2304: Cannot find name 'Map'.
[0] node_modules/rxjs/Observable.d.ts(10,66): error TS2304: Cannot find name 'Promise'.
[0] node_modules/rxjs/Observable.d.ts(66,60): error TS2304: Cannot find name 'Promise'.
[0] node_modules/rxjs/Observable.d.ts(66,70): error TS2304: Cannot find name 'Promise'.
[0] 8:52:59 AM - Compilation complete. Watching for file changes.

我在网上搜索并发现我可以使用 typings CLI 工具来安装 typings 定义;但是,当我尝试通过 postinstall 从我的 typings.json 文件安装软件包时出现错误。

我看到另一种方法是使用 definitely typed来自 github 的库并从 definitely typed 复制 es6-promise.d.ts 并将其添加到我的项目的根目录并按照指示再次运行服务器 here .这一次,关于找不到 Promise 的消息消失了。

我无法弄清楚哪些 .ts 文件包含“Map”、“Set”和“Map constructor”的定义。 为了让 typescript 编译器能够找到这些库,我应该包含哪些文件?

最佳答案

如果库不包含类型,您可以使用 npm 安装它们:

npm install d3 --save
npm install @types/d3 --save-dev

Quoted from the angular-cli documentation

@types在 npm 中包含所有 definitely typed类型定义。

关于javascript - 如何在 Angular 2 项目中包含明确类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38402245/

相关文章:

javascript - 从数组中返回与键 :value pair of an object nested in the object I need to return 匹配的对象

javascript - AngularJS 中 $index 的计算?

javascript - AngularJS 中的代码分离

node.js - Node.js请求代理

node.js - TLS + NodeJS,如何在服务器端获取客户端的公钥字节

javascript - Angular 2 - 如何使用本地 json 中的数据?

javascript - JavaScript 中的数字格式与 C# 类似

Mysql查询返回空对象

javascript - 使用 textcolor 时如何配置 MathJax 以识别等式中的 textrm{}?

android - 在Android上未调用html5音频对象ondurationchange