Javascript TypeScript编译器,包括来自具有不同名称的TypeScript定义的模块
我有一个简单的Nodejs Typescript项目,它通过Typescript定义文件导入一些JavaScript库。即: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
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谢谢,但不认为这会有帮助-请参阅我的编辑。谢谢,这是我要找的片段。