Javascript TypeScript编译器,包括来自具有不同名称的TypeScript定义的模块

Javascript TypeScript编译器,包括来自具有不同名称的TypeScript定义的模块,javascript,node.js,typescript,typescript-typings,typescript2.0,Javascript,Node.js,Typescript,Typescript Typings,Typescript2.0,我有一个简单的Nodejs Typescript项目,它通过Typescript定义文件导入一些JavaScript库。即: import * as zmq from 'zmq' const sock = zmq.socket("push"); 当我编译时,结果是: "use strict"; exports.__esModule = true; var zmq = require("zmq"); var sock = zmq.socket("push"); //# sourceMapping

我有一个简单的Nodejs Typescript项目,它通过Typescript定义文件导入一些JavaScript库。即:

import * as zmq from 'zmq'
const sock = zmq.socket("push");
当我编译时,结果是:

"use strict";
exports.__esModule = true;
var zmq = require("zmq");
var sock = zmq.socket("push");
//# sourceMappingURL=index.js.map
看起来不错,除了以下几点:

var zmq = require("zmq");
应该是zmq的节点JavaScript模块,即:

var zmq = require("../node_modules/zeromq");
我如何让编译器进行这种替换

我的配置如下所示:

{
  "compilerOptions": {
    "declaration": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": true,
    "outDir": "./lib",
    "preserveConstEnums": true,
    "removeComments": true,
    "sourceMap": true,
    "typeRoots": [
      "./node_modules/@types"
    ]
  },
  "include": [
    "node_modules/@types/**/*.d.ts",
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*-spec.ts",
    "!node_modules/@types/**/*.d.ts"
  ]
}
zmq的安装方式如下:

npm install zeromq --save
npm install @types/zmq --save
任何建议都很好-谢谢

编辑:

好的,问题可能是因为zeromq是我希望使用的zeromq库的最新名称,但键入仍然称为zmq。因此,在执行编译时,编译器似乎无法确定zmq应该映射到zeromq(为什么会映射到zeromq)

那么除了@types/zmq被重命名之外,还有什么办法可以解决这个问题呢

那么除了@types/zmq被重命名之外,还有什么办法可以解决这个问题呢

添加包含以下内容的types.d.ts文件:

declare module "zeromq" {
  export * from "zmq"
}

只需尝试导入mo=require(“zmq”)而不是现有的
import*作为zmq从'zmq'导入
@DavidR谢谢,但不认为这会有帮助-请参阅我的编辑。谢谢,这是我要找的片段。