import 和 export 具有允许静态分析它们的受限语法:
如the documentation中所列:
从“模块名称”导入 defaultMember;
import * as name from "module-name";
从“模块名称”导入{成员};
import { member as alias } from "module-name";
从“模块名称”导入 { member1 , member2 };
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
导入“模块名称”;
可以看出,没有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;