【问题标题】:angular-mock and node.js conflicting when running grunt-typescript on the "module" global variable在“模块”全局变量上运行 grunt-typescript 时,angular-mock 和 node.js 发生冲突
【发布时间】:2014-03-22 00:02:30
【问题描述】:

我正在使用 grunt-typescript,它正在编译我所有的 *.ts 文件。我同时使用了 angular-mocks.d.ts 和 node.d.ts,但是我在我的实际 ts 文件中分别引用它们。我仅将 angular-mocks 用于茉莉花测试,并且在 server.ts 文件中使用节点。
问题我遇到的是,即使它们被引用单独地,当它们在 grunt-typescript 中编译时,似乎以某种方式将它们转储在一起,以便它们对“模块”的两个不同定义最终发生冲突。如果我使用 tsc(它引用 node.d.ts)自己构建我的 server.ts 文件,它构建得很好。这两者实际上不应该重合,所以对我来说不是真的冲突,除了它正在成为 grunt-typescript 中的一个,它似乎在编译时将所有 *.d.ts 文件一起转储。我认为这是因为它将我所有的 *.ts 文件构建在一起,因此最终将 *.d.ts 文件一起拉到一个公共空间中。

我得到的错误:

c:/node/bills/typings/node/node.d.ts(37,13): 错误 TS2134:后续变量声明必须具有相同的类型。变量 'module' 必须是 '(...modules: any[]) => any' 类型,但这里有类型 '{ exports: any;要求(id:字符串):任何; id:字符串;文件名:字符串;加载:布尔值;父母:任何;孩子:任何[]; }'。

angular-mocks.d.ts “模块”定义:

declare var module: (...modules: any[]) => any;

node.d.ts “模块”定义:

declare var module: {
    exports: any;
    require(id: string): any;
    id: string;
    filename: string;
    loaded: boolean;
    parent: any;
    children: any[];
}

【问题讨论】:

    标签: javascript node.js angularjs gruntjs typescript


    【解决方案1】:

    这最终对我有用。我将我的测试 .ts 文件拆分为单独的打字稿运行。这导致它不能同时运行我的测试声明和运行时声明。将它们分开后,模块环境声明不再冲突。

        typescript: {
            options:
            {
                target: 'es5', //or es3
                base_path: '',
                sourcemap: true,
                declaration: false
            },
            server: {
                src: ['*.ts']
            },
            test: {
                src: ['test/*.ts']
            }
        },
    
        watch: {
            files: ['*.ts', 'test/*.ts'],
            tasks: ['typescript:server', 'typescript:test']
        }
    

    【讨论】:

      【解决方案2】:

      这是一个已知问题!

      它已成为pull request/merge ..

      解决方法是使用angular.mock.module 而不是module

      【讨论】:

      • 不仅仅是一种解决方法! angular-mocks 的类型定义建议您始终使用angular.mock.module
      猜你喜欢
      • 2013-02-25
      • 2017-06-02
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 2018-09-06
      相关资源
      最近更新 更多