如何让angularjs在我的项目中键入全局

时间:2017-11-05 09:41:15

标签: angularjs typescript npm typescript-typings

我正在处理一个项目,该项目已经使用了不推荐使用的typings方法,并且我现在转而使用@types方法。

目前我们在项目的根目录中有一个typings.json文件,如下所示:

{
  "globalDependencies": {
    "angular": "registry:dt/angular#1.5.0+20161101124950",
    "angular-cookies": "registry:dt/angular-cookies#1.4.0+20160317120654",
    "angular-material": "registry:dt/angular-material#1.1.0-rc5.0+20161208205836",
    "angular-resource": "registry:dt/angular-resource#1.5.0+20160914132003",
    "angular-translate": "registry:dt/angular-translate#2.4.0+20160729132354",
    "d3": "registry:dt/d3#0.0.0+20160907005744",
    "jquery": "registry:dt/jquery#1.10.0+20160929162922",
    "lodash": "registry:dt/lodash#4.14.0+20161110215204",
    "moment": "registry:dt/moment#2.11.1+20161010105546",
    "require": "registry:dt/require#2.1.20+20160919185614"
  },
  "resolution": "src/client/typings",
  "dependencies": {
    "angular-local-storage": "registry:dt/angular-local-storage#0.1.5+20160726182927",
    "angular-ui-router": "registry:dt/angular-ui-router#1.1.5+20161222093745",
    "requirejs": "registry:npm/requirejs#2.2.0+20160319062357"
  }
}

正如您可以清楚地看到的,这些目前作为全局安装,并且出现在我们的目录结构中的src/client/typings文件夹中。

我已经可以看到我的node_modules下面有一个@types文件夹,其中包含我在这个typings.json文件中列出的部分内容。

在我们的tsconfig.json文件中,我们有一个包含配置部分:

"include": [
        "./typings/index.d.ts",
        "./app/**/*.module.ts",
        "./app/**/*.run.ts",
         "./app/**/*.routes.ts",
        "./app/**/*.enum.ts",
        "./app/**/*.controller.ts",
        "./app/**/*.model.ts",
        "./app/**/*.directive.ts",
        "./app/**/*.filter.ts",
        "./app/**/*.service.ts",
        "./app/interfaces/**/*.ts"
    ],

我已经注释了./typings/index.d.ts,以确保没有任何旧版本(不在@types文件夹中)被拉入。

现在,当我查看某个angularjs代码的.ts文件时,我发现角度对象不再被解析了:

enter image description here

阅读完之后,我可以在文件中添加导入来解决此问题(例如import * as angular from 'angular'),但这意味着我需要添加到包含任何角度代码的每个.ts文件中

是否有一种简单\推荐的方法可以在我的项目中将角度参考设置为全局,或者最佳做法是在需要的所有文件中添加这些细粒度的导入?

由于

1 个答案:

答案 0 :(得分:0)

在'Typings'文件夹下创建一个常见的.ts文件,并在该文件中添加所有必需的引用,如下所示。

enter image description here

之后,只需将常见的.ts文件引用添加到所有需要引用的地方,如下所示。

/// <reference path="../../typings/common.d.ts" />