Typescript 在TS 3.2.2中使用--isolatedModules时,无法重新导出类型
我可能需要重新思考一下我们构造组件的方式。我们正在使用最新的react脚本,允许使用Typescript,默认情况下,Typescript 在TS 3.2.2中使用--isolatedModules时,无法重新导出类型,typescript,webpack,webpack-4,Typescript,Webpack,Webpack 4,我可能需要重新思考一下我们构造组件的方式。我们正在使用最新的react脚本,允许使用Typescript,默认情况下,isolatedModules正在启用,这让我有点不舒服 我们曾经这样构造一个组件: Component |_ Component.tsx |_ index.ts |_ types.ts Component.tsx保存没有声明的实际组件 index.ts只是重新导出所有内容,这样我们就可以有一个单一的入口点,并可以从“@/Component”导入组件,{ComponentTy
isolatedModules
正在启用,这让我有点不舒服
我们曾经这样构造一个组件:
Component
|_ Component.tsx
|_ index.ts
|_ types.ts
保存没有声明的实际组件Component.tsx
只是重新导出所有内容,这样我们就可以有一个单一的入口点,并可以从“@/Component”导入组件,{ComponentType}代码>index.ts
保存实际的类型定义并导出其中的大部分或全部types.ts
隔离模块的情况下也能正常工作。但是,我们还导出了一些类型定义,有效地重新导出了组件/types.ts
中指定的接口。这将无法工作,因为TypeScript本身将不再传输代码
如何在没有单独的导入语句转到@/Component/types
(这可能是实际的更简单的方式)的情况下重新导出此文件?我个人使用的是相同的结构,在移动到执行隔离模块的create react app
样板文件后遇到了相同的问题。与isolatedModules
背后的思想形成鲜明对比的一个解决方法是使用export*from“/Component”代码>在index.ts中
ts 3.8+
您可以与--隔离模块一起使用:
// types.ts
export type MyType = { a: string; b: number; };
);请查看可能的扩展表格和建议
TS 3.7或更高版本
在以前的版本中,无法执行以下操作:
import { MyType } from './types';
export { MyType }; // error: Cannot re-export a type with --isolatedModules
export { MyType } from "./types"; // error, like above
类型再出口必须使用:
注:上述功能在Babel中受支持,从
import { MyType } from './types';
export { MyType }; // error: Cannot re-export a type with --isolatedModules
export { MyType } from "./types"; // error, like above
import { MyType as MyType_ } from "./types";
export type MyType = MyType_;
// or
export * from "./types"