Express
/Node.js
でTypeScriptを使用しています。
モジュールを使用する場合、TypeScriptハンドブックには次の構文が表示されます。
import express = require('express');
しかし、TypeScript.d.ts
ファイルも示しています:
import * as express from "express";
MSDNブログも検索しましたが、何も見つかりませんでした。
2016年初頭の時点でどちらが正しいですか? 2つの違いはありますか?
使用する最新の構文に関する情報を見つけるのに最適なソースはどこにあるので、将来この情報を見つけることができますか?
これらはほとんど同等ですが、import *
にはimport ... = require
にはない制限がいくつかあります。
import * as
は、モジュールオブジェクト、オブジェクトを重視した識別子を作成します。 ES6仕様によると、このオブジェクトは決して呼び出し可能またはnew
ableではありません-プロパティのみを持ちます。関数またはクラスをインポートしようとしている場合は、使用する必要があります
import express = require('express');
または(モジュールローダーによって異なります)
import express from 'express';
ES6の仕様では、import * as express
を使用してからexpress()
を呼び出すことは常に違法です。いくつかのランタイム+トランスピレーション環境では、これはとにかく動作する可能性がありますが、警告なしに将来の任意の時点で壊れる可能性があり、あなたを悲しませます。
import * as express from "express";
これは、昨年からJavaScriptの標準(ES6/2015)であるため、推奨される方法です。
いずれにしても、tsconfig.jsonファイルで、nodejsでサポートされている形式であるcommonjsをモジュールオプションの対象にする必要があります。