带有 typescript require 和 .d.ts 文件的 Node.js

Ced*_*Ced 2 javascript node.js typescript q

我想创建一个服务器端脚本,为此我需要“Q”,因此我包含 qdts 文件。我用它来导入 q:

var Q = require("q");
Run Code Online (Sandbox Code Playgroud)

现在我收到此错误:重复的标识符“Q”

有人知道如何解决这个名称冲突吗?

完整的启动脚本:+

    ///<reference path="Scripts/typings/q/Q.d.ts" />
///<reference path="Server.ts" />
///<reference path="Services/DatabaseProvider.ts" />
///<reference path="Response/Response.ts" />
///<reference path="Response/DataResponse.ts" />


var Q = require("q");
var di = require("ng-di");
var app = di.module("App", []);
app.service("server", Server);
app.service("$databaseProvider", DatabaseProvider);
app.run((server: Server) => {
    server.run();
});

di.injector(["App"]);
Run Code Online (Sandbox Code Playgroud)

bas*_*rat 5

重复的标识符“Q”

如果文件根部没有import或语句:您的文件以及传递给 TypeScript 编译器的任何其他此类文件都被视为全局命名空间的一部分。因此该变量与 中声明的变量冲突。exportQq.d.ts

使固定

import问,不仅仅是require它:

import Q = require("q");
Run Code Online (Sandbox Code Playgroud)

有关外部模块的更多信息:https://www.youtube.com/watch?v =KDrWLMUY0R0