TypeScript 编译器包含来自 TypeScript 定义的具有不同名称的模块
TypeScript compiler to include modules from TypeScript definitions with a different name
我有一个简单的 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的Node 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(以及为什么会映射)。
那么除了重命名@types/zmq 之外,是否有解决此问题的方法?
So would there be a way around this, short of @types/zmq being renamed?
添加 types.d.ts 包含以下内容的文件:
declare module "zeromq" {
export * from "zmq"
}
我有一个简单的 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的Node 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(以及为什么会映射)。
那么除了重命名@types/zmq 之外,是否有解决此问题的方法?
So would there be a way around this, short of @types/zmq being renamed?
添加 types.d.ts 包含以下内容的文件:
declare module "zeromq" {
export * from "zmq"
}