import
and export
具有允许静态分析它们的受限语法:
如所列文档 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import:
从“模块名称”导入defaultMember;
从“模块名称”导入 * 作为名称;
从“模块名称”导入{成员};
从“模块名称”导入{成员作为别名};
从“模块名称”导入 { member1 , member2 } ;
从“模块名称”导入 { member1 , member2 as alias2 , [...] } ;
从“模块名称”导入 defaultMember, { member [ , [...] ] };
从“模块名称”导入defaultMember,*作为名称;
导入“模块名称”;
可以看出,没有import * as name, { member } from "module-name"
,所以不支持。
不支持的原因是因为import * as name, { member } from "module-name"
是可以互换的。它要么是一一导入成员,要么是name
命名空间。
如果出于某种原因两者都应该使用,则应该是:
import * as Express from 'express';
import { Application, NextFunction, Request, Response } from 'express';
或者,如果导出是实际变量而不是类型/接口,则可以是:
import * as Express from 'express';
const { Application, NextFunction, Request, Response } = Express;