これを1行に書くにはどうすればよいですか?ES6/Typescript import:1行に*と名前をインポート
import * as Express from 'express';
import { Application, NextFunction, Request, Response } from 'express';
あなたのダンのDev
これを1行に書くにはどうすればよいですか?ES6/Typescript import:1行に*と名前をインポート
import * as Express from 'express';
import { Application, NextFunction, Request, Response } from 'express';
あなたのダンのDev
import
とexport
は静的にそれらを分析することを可能にする構文制限されている:the documentationに記載されているとおり
を:
「モジュール名からインポートdefaultMemberを";
import * as "module-name";
import {member} from "module-name";
"module-name"からimport {member as alias};
"module-name"から{member1、member2}をインポートします。
import "{module1、member2 as alias2、[...]}" module-name "からインポートします。
"module-name"からimport defaultMember、{メンバー[、[...]]};
import defaultMember、* "module-name"の名前です。
import "module-name";
見ることができるように、import * as name, { member } from "module-name"
はありません。したがって、サポートされていません。
サポートされていない理由は、import * as name, { member } from "module-name"
が互換性があるためです。メンバーを1つずつインポートするか、name
名前空間としてインポートします。
両方が何らかの理由で使用する必要がある場合、それは次のようになります。
import * as Express from 'express';
import { Application, NextFunction, Request, Response } from 'express';
それとも輸出が本当の変数とないタイプ/インタフェースであれば、それができる:
import * as Express from 'express';
const { Application, NextFunction, Request, Response } = Express;
こんにちは、詳細な答えをありがとう、私は間違いなく言及されたドキュメントを詳しく見ていきます。 constを使った最後のコンストラクタ(これまでに試した)は残念ながら動作しませんでしたが、はるかに論理的です。 –
私は説明を追加しました。私はそれらがインターフェイスであり、実際のクラスではないと想定しています。そうではありませんが、構造破壊は何もないので意味がありません。 'foo:Express.NextFunction'がクリーナーを読み込み、インタフェースがクラスと混同されないため、最初のオプションは正しいものです.btwは、接尾辞は 'I'です。 – estus
はい、すべてのインターフェイスです:) –
'*'輸入「急行」からのすべて。私は他のモジュールを別々にインポートする必要性を理解していません – koolkat