【问题标题】:Split TypeScript namespaces between files - Intellisense Error在文件之间拆分 TypeScript 命名空间 - Intellisense 错误
【发布时间】:2018-04-28 06:45:06
【问题描述】:

我是 TypeScript 的新手,并试图不让一个糟糕的开始。在 Visual Studio 2017 中使用 TypeScript 2.5.3 我收到智能感知错误,提示“重复标识符 'MyCo'”。我在这里做错了什么,如果是这样,我应该怎么做?代码按需要运行,但 VS intellisense 将此称为错误。

MyCo.TestSuite1.ts

namespace MyCo {
  export class TestSuite1 {
    run() {
      alert("MyCo.TestSuite1.run");
    }
  } 
}

MyCo.TestSuite2.ts

namespace MyCo {
  export class TestSuite2 {
    run() {
      alert("MyCo.TestSuite2.run");
    }
  } 
}

App.ts

/// <reference path="MyCo.TestSuite1.ts" />
/// <reference path="MyCo.TestSuite2.ts" />

namespace MyCo {
  export class Main {
    run() {
      var ts1 = new MyCo.TestSuite1();
      ts1.run();
      var ts2 = new MyCo.TestSuite2();
      ts2.run();
    }
  }
}

(function () {
  var main = new MyCo.Main();
  main.run();
})();

【问题讨论】:

  • 你应该先检查this,然后想想你是否需要这些命名空间。
  • 不幸的是,在尝试建议的导入时,我收到“exports undefined”的运行时错误。我似乎找不到一个真正有效的例子:(
  • @MikeO,请尝试右键解决方案并清理,重启VS,删除解决方案文件夹下的.vs文件夹和bin/obj文件夹。如果您安装了 ReSharper,请清空 ReSharper 缓存:ReSharper > 选项 > 环境 > 常规 > 清除缓存并禁用和启用 ReSharper:工具 > 选项 > ReSharper > 常规 > 暂停/恢复。

标签: typescript namespaces visual-studio-2017 intellisense


【解决方案1】:

你的主课是:

 export class Main {
    run() {
      var ts1 = new MyCo.TestSuite1();
      ts1.run();
      var ts2 = new MyCo.TestSuite2();
      ts2.run();
    }

但您的 MyCo.TestSuite1.tsexport class TestSuite2 而不是 TestSuite1 检查 .ts 文件中的类名

【讨论】:

  • 糟糕,为 TestSuite1 示例复制了错误的代码。现在修好了。正如我所说,代码按预期运行,我只是得到一个智能感知错误。
  • 你能从打开的工具 > 选项 > 文本编辑器 > JavaScript/TypeScript > IntelliSense 中检查 Typescript 版本吗?如果需要。更改使用 TypeScript 版本
  • 这些选项卡中没有版本属性,但在项目属性 TypeScript Build 下将其设置为使用 2.5。
猜你喜欢
  • 2019-03-18
  • 1970-01-01
  • 2017-02-15
  • 2011-06-09
  • 2011-07-06
  • 1970-01-01
  • 2023-04-03
  • 2018-12-13
相关资源
最近更新 更多