Visual Studio Code 抱怨它“找不到 *.d.ts 文件中定义的类型的命名空间”

2023-11-23

我使用创建了一个新项目吞咽角Yeoman 生成器,语言设置为 TypeScript。然后运行Gulp构建过程并在网络浏览器中打开页面,所有这些都正常运行,没有任何更大的问题。我只需要更换ref: "master" in the tsd.json with ref: "1.4.1"使构建工作。基本上我执行了以下命令:

yo gulp-angular
vim tsd.json
gulp
gulp serve
code .

之后我打开了该项目视觉工作室代码.

现在,Visual Studio Code 抱怨说,它“找不到命名空间‘ng’”对于每次出现的情况AngularJS使用数据类型。它还抱怨MomentJS以及中定义的其他类型*.d.ts files.

该项目的tsd.json看起来像这样:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "1.4.1",
  "path": ".tmp/typings",
  "bundle": ".tmp/typings/tsd.d.ts"
}

The .tmp/typings文件夹包含以下文件:

angular-ui-router/angular-ui-router.d.ts
angularjs/angular-animate.d.ts
angularjs/angular-cookies.d.ts
angularjs/angular-mocks.d.ts
angularjs/angular-resource.d.ts
angularjs/angular-sanitize.d.ts
angularjs/angular.d.ts
jquery/jquery.d.ts
moment/moment-node.d.ts
moment/moment.d.ts
toastr/toastr.d.ts
tsd.d.ts

举一个 Visual Studio Code 抱怨的源文件之一的示例,这里是navbar.directive.ts file:

module editorTs {
  'use strict';

  /** @ngInject */
  export function acmeNavbar(): ng.IDirective {

    return {
      restrict: 'E',
      scope: {
        creationDate: '='
      },
      templateUrl: 'app/components/navbar/navbar.html',
      controller: NavbarController,
      controllerAs: 'vm',
      bindToController: true
    };

  }

  /** @ngInject */
  class NavbarController {
    public relativeDate: string;

    constructor(moment: moment.MomentStatic) {
      this.relativeDate = moment(1444135396045).fromNow();
    }
  }
}

在此文件中,Visual Studio Code 抱怨ng.IDirective键入它“找不到命名空间‘ng’”它正在抱怨moment.MomentStatic键入它“找不到命名空间‘时刻’”.

edit:

通过将以下内容添加到顶部来显式引用类型定义文件navbar.directive.ts消除了问题:

/// <reference path="../../../../.tmp/typings/angularjs/angular.d.ts"/>
/// <reference path="../../../../.tmp/typings/moment/moment.d.ts"/>

但这些文件已经被引用.tmp/tsd.d.ts,其中包含以下内容:

/// <reference path="angular-ui-router/angular-ui-router.d.ts" />
/// <reference path="angularjs/angular-animate.d.ts" />
/// <reference path="angularjs/angular-cookies.d.ts" />
/// <reference path="angularjs/angular-mocks.d.ts" />
/// <reference path="angularjs/angular-resource.d.ts" />
/// <reference path="angularjs/angular-sanitize.d.ts" />
/// <reference path="angularjs/angular.d.ts" />
/// <reference path="jquery/jquery.d.ts" />
/// <reference path="moment/moment-node.d.ts" />
/// <reference path="moment/moment.d.ts" />
/// <reference path="toastr/toastr.d.ts" />

那么应该不需要显式引用这些文件?


添加一个tsconfig.json我的 VS Code 项目的根源解决了我的问题。另外,必须重新启动 VS code。这是我在该文件中放入的内容:

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "sourceMap": true
    }
}

欲了解更多信息tsconfig.json文件,查看:

https://code.visualstudio.com/docs/languages/typescript

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio Code 抱怨它“找不到 *.d.ts 文件中定义的类型的命名空间” 的相关文章

随机推荐

  • .find() 比基本后代选择方法更快吗?

    滑轨 30 英寸保罗 爱尔兰的博客提及 container find div robotarm 比 container div robotarm 这是真的 也许在 jQuery 的早期版本中就是这种情况 然而 表达 container di
  • Hibernate 标准查询使用键字段上的 Max() 投影并按外键进行分组

    我很难将此查询 直接在数据库上工作 表示为 Hibernate 版本 3 2 5 中的条件查询 SELECT s FROM ftp status s WHERE s datetime s connectionid IN SELECT MAX
  • 在 WinSock 中处理异步套接字?

    我正在使用消息窗口和 WSAAsyncSelect 如何使用一个消息窗口跟踪多个套接字 客户端 Windows 支持多种套接字操作模式 您需要明确您正在使用哪一种 阻塞套接字 发送和接收块 非阻塞套接字 send和recv返回E WOULD
  • 如何在服务器端运行不受信任的代码?

    我试图使用沙盒模块在 linux node js 中运行不受信任的 javascript 代码 但它已损坏 我需要的只是让用户编写打印输出一些文本的 javascript 程序 不允许其他 I O 只使用普通的 javascript 没有其
  • javax.ejb.Singleton在集群环境下是如何单例的?

    我需要为集群环境中的所有用户和所有节点维护一个在应用程序中唯一的简单计数器 我考虑过使用单例会话 bean 注释 javax ejb Singleton 如下所示 package foo import javax ejb Singleton
  • 如何突出显示 Rails 验证错误上的字段

    如何在 Rails 3 1 中突出显示未通过验证错误的字段的表单字段 我知道脚手架会自动生成 css 和控制器代码来处理这个问题 但我想知道是否有办法手动生成 我已经通过以下方式实现了错误消息的字符串显示 user errors full
  • 如何在单个 for-eachin XSLT 中选择多个节点

    我正在尝试学习 XSLT 但通过示例效果最好 我想执行一个简单的模式到模式转换 如何仅通过一次传递来执行此转换 我当前的解决方案使用两次传递并丢失客户的原始订单 From
  • 如何使用 Java 中的流创建两个数组的映射?

    假设我有两个数组Double Double a new Double 1 2 3 Double b new Double 10 20 30 使用 Java 流 如何创建地图 Map
  • 比较两个 xml 并使用 LINQ 打印差异

    我正在比较两个 xml 并且必须打印差异 我怎样才能使用 LINQ 来实现这一点 我知道我可以使用 Microsoft 的 XML diff 补丁 但我更喜欢使用 LINQ 如果你有任何其他想法我会实现 第一个XML
  • 如何获取通过 USB 端口连接到 Android 设备的条码扫描仪的扫描结果?

    外部激光条码扫描仪连接到 Android POS 设备 我需要在我的应用程序中访问扫描结果 这怎么可能 需要 Android 操作系统版本 2 3 及以上版本的支持 大多数 USB 扫描仪通过 HID 配置文件连接 因此 Android 应
  • 无法在文本框中输入双精度值

    我正在开发 mvc net Web 应用程序 并使用实体框架来生成模型 我有包含双精度属性的类 我的问题是当我使用 HTML EditorFor model gt model Double attribute 并测试我的应用程序 我无法在该
  • null==object 和 object==null 之间的区别[重复]

    这个问题在这里已经有答案了 您好 我想知道上述比较之间的区别 当我检查时出现空指针异常object getItems null 但如果我把它改成null object getItems 效果很好 我确实调查过这个null object 和
  • Anaconda 未更新到最新版本

    anaconda的最新版本是2 5 当我输入 conda update conda conda update anaconda I get All requested packages already installed packages
  • 如何设置 Gruntfile 在 heroku 上使用 compass/sass?

    我已经成功设置了我的heroku应用程序咕噜构建包 当我将 Node js 应用程序推送到 heroku 时 它将运行适当的 grunt 任务 我想要的是使用 grunt contrib compass 包来编译我的 scss 文件 但这需
  • Lambda + Python + 退出代码

    我遇到了用 Python 编写的简单 AWS Lambda 函数的问题 当我运行 Lambda 函数时 我的代码按预期运行 结果正确 但仍以错误代码 退出代码 结束 Process exited before completing requ
  • 如何从文本框中删除光标?

    这是我的代码 table tr td td tr table
  • Numpy - 将行添加到数组

    如何向 numpy 数组添加行 我有一个数组A A array 0 1 2 0 2 0 如果 X 中每行的第一个元素满足特定条件 我希望从另一个数组 X 向该数组添加行 Numpy 数组没有像列表那样的 追加 方法 或者看起来是这样 如果
  • 如何使用javascript检查页面是否是第一次加载

    我想检查页面是否是第一次加载 如果是 则显示过滤器 如果我将 showFiltermenu 放在 pageLoad 函数中 那么每次加载页面时它都会显示 但我只想它第一次显示 我尝试使用Page IsPostBack但不显示过滤器
  • 在 Ruby 中抓取/解析 Google 搜索结果

    假设我有 Google 搜索结果页面的完整 HTML 有谁知道任何现有的代码 Ruby 来抓取 解析Google搜索结果的第一页 理想情况下 它可以处理可能出现在任何地方的购物结果和视频结果部分 如果没有 那么基于 Ruby 的最佳屏幕抓取
  • Visual Studio Code 抱怨它“找不到 *.d.ts 文件中定义的类型的命名空间”

    我使用创建了一个新项目吞咽角Yeoman 生成器 语言设置为 TypeScript 然后运行Gulp构建过程并在网络浏览器中打开页面 所有这些都正常运行 没有任何更大的问题 我只需要更换ref master in the tsd json