TSLintはTypeScriptのvar
キーワードを使用することを警告しているので、モジュールをインポートするときにimport
を使用しています。しかし、ローカルモジュールでこれを行うと、モジュールを使用しようとするとエラーになります。NodeJSのモジュールにインポートを使用するとタイプエラーが発生する
app.ts
で
import express = require("express");
let router = express.Router();
router.get("/", (req, res, next) => { ... });
module.exports = router;
::私が持っているファイルroutes/main.ts
で
私はapp.use(routes);
でそれを使用するときimport routes
を使用して
/// <reference path="../../typings/main.d.ts" />
import express = require("express");
...
import routes = require("./routes/main");
let app = express();
app.use(routes); // The type error is here.
...
は、次のタイプのエラーが発生します。
app.ts(36,13): error TS2345: Argument of type 'typeof ".../source/server...'
is not assignable to parameter of type 'RegExp'.
これを修正するには、私はそれを特定のタイプ:
app.use(<express.Router>routes);
しかし、タイプキャスティングがきれいでない場所があります。私はモジュールをインポートするとき、私はvarキーワードの使用に切り替えることができます。
var routes = require("./routes/main");
let app = express();
app.use(routes); // No errors.
しかし、コンパイラとtslintの両方を満足させる方法はありますか?または、CommonJSモジュールスタイルを使用する場合は、tslintに"no-var-requires": true
の設定を使用しないでください。