TypeScript编译器包含TypeScript定义中不同名称的模块
问题描述:
我有一个简单的Nodejs Typescript项目,它通过TypeScript定义文件导入一些JavaScript库。即:TypeScript编译器包含TypeScript定义中不同名称的模块
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");
应该是基站的JavaScript模块ZMQ,即:
var zmq = require("../node_modules/zeromq");
我该怎么办ake编译器做这个替换吗?
我的配置是如下:
{
"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(为什么会这样)。
所以会有解决方法,短的@ types/zmq被重命名?
答
所以会有解决方法,短的@ types/zmq被重命名?
添加types.d.ts文件与此内容:
declare module "zeromq" {
export * from "zmq"
}
+0
谢谢,这是我之后的片段。 – thepinkyman
试试看'=需要进口MO( “ZMQ”);'的,而不是现有的'*进口从 'ZMQ' ZMQ ' –
@DavidR谢谢,但不认为这会有所帮助 - 请参阅我的编辑。 – thepinkyman