1. ホーム
  2. javascript

[解決済み] Typescriptのimport/asとimport/requireの違い?重複

2022-09-11 21:53:41

質問

私はTypeScriptで Express / Node.js .

コンシューマーモジュールについては、TypeScriptハンドブックに以下のような構文が示されています。

import express = require('express');

しかしまた typescript.d.ts ファイルには表示されています。

import * as express from "express";

また、MSDN ブログを検索しましたが、何も見つかりませんでした。

2016年初頭の時点ではどちらが正しいのでしょうか?また、両者の違いがあれば教えてください。

将来的にこの情報を見つけることができるように、最新の構文を使用するための情報を見つけるには、どこが最適なソースですか?

どのように解決するのですか?

これらはほぼ同等ですが import * にはいくつかの制限があり import ... = require にはない制限があります。

import * as は識別子を作成し、その識別子は モジュールオブジェクト を強調します。 オブジェクト . ES6 仕様によると、このオブジェクトは決して呼び出すことができないし new 可能で、プロパティしか持ちません。もし関数やクラスをインポートしようとしているのであれば

import express = require('express');

または (モジュールローダーによって)

import express from 'express';

試行錯誤の結果 import * as express を起動し express() はES6仕様によると常に不正です。ランタイム+トランスコンパイル環境ではたまたまうまくいくかもしれませんが、将来的には警告なしにいつでも壊れる可能性があり、悲しい思いをすることになるでしょう。