TypeScript定義ファイルでJavaScriptライブラリをインポートする単純なNodejs Typescriptプロジェクトがあります。すなわち:私はこれをコンパイルすると、結果は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");
どうすればいいですか?コンパイラはこの置換を行いますか?
私の設定は、以下である:次のように
{
"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
何かアドバイスは素晴らしいことだ - 感謝。
EDIT:
[OK]をzeromqは、私が使用したいzeromqライブラリーの最新の名前ですが、タイピングはまだzmqと呼ばれているので、問題があることができるよう。だから、コンパイル時にコンパイラがzmqをzeromqにマップする必要があると判断できないようです(なぜそうでしょうか)。
このように、@ types/zmqの名前が変更されていないことがありますか?
を;'代わりに、既存の '輸入の* 'zmq' からzmqとして' –
@DavidRありがとう、しかし、それは助けになるとは思わない - 私の編集を参照してください。 – thepinkyman