【问题标题】:Typescript's import unable to resolve external moduleTypescript 的导入无法解析外部模块
【发布时间】:2014-05-27 05:10:54
【问题描述】:

我正在尝试使用 requireJS 将外部类(用 Typescript 编写)导入另一个 Typescript 类。我使用了这个语法,但我不明白为什么我在这个 import 语句中遇到语法错误:

我也尝试过使用它:

import t = module("Controller/TestController");

我也遇到了同样的错误。

上面的 import/require 语句位于appmod.ts。这是我的文件结构:

+Root
  +Scripts
    +app
      -main.ts
      -appmod.ts
      +Controller
        -TestController.ts

我查看了文档,这条线对我来说看起来非常好。路径中确实存在 TestController.ts 文件,并且类前面带有 export 关键字。

这条线有什么问题?

这就是我的 TestController.ts 的样子:

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

module testApp.Controller {
     export interface ITestScope extends ng.IScope {
         helloString:string;
     }

     export class TestController {

         public static $inject = [
            "$scope"
         ];


         constructor(private $scope: ITestScope) {
            this.$scope.helloString = "Hello!";
         }
     }

 }

我在我的TestController.js 中使用了DefinitelyTyped 的AngularJS 定义。

【问题讨论】:

    标签: javascript visual-studio angularjs requirejs typescript


    【解决方案1】:

    您的导出语句需要位于文件的根级别。移除冗余模块http://m.youtube.com/watch?v=KDrWLMUY0R0&hd=1

    即删除'module testApp.Controller'

    【讨论】:

    • 谢谢!删除模块 testApp.Controller 确实可以正常工作。但是我还是很好奇,为什么我的 angularjs 控制器和 RequireJS 服务不能使用命名空间?
    • 每个文件都是 AMD/CommonJS 世界中的一个模块
    • 如果你在模块前面加上 export,你仍然可以使用它们。 IE。 '导出模块',但它浪费了字符
    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 2015-06-21
    • 2017-09-21
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    相关资源
    最近更新 更多