Álv*_*aro 24 typescript reactjs
有了这个文件夹结构
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80components/\n| \xe2\x94\x94\xe2\x94\x80Employee/\n| \xe2\x94\x94\xe2\x94\x80employee.tsx\n| \xe2\x94\x94\xe2\x94\x80index.ts\n| \xe2\x94\x94\xe2\x94\x80app.tsx\n
Run Code Online (Sandbox Code Playgroud)\n我正在导出类型和组件
\nimport React, { FC } from 'react'\n\nexport type EmployeeState = {\n Name: string\n EmployeeId: number\n}\n\ntype EmployeeProps = {\n employees: EmployeeState[]\n}\n\nexport const Employee: FC<EmployeeProps> = ({ employees }) => {\n return (\n <ul>\n {\n employees.map((employee) => (\n <li key={employee.EmployeeId}>\n <h2>{employee.Name}</h2>\n </li>\n ))\n }\n </ul>\n )\n} \n
Run Code Online (Sandbox Code Playgroud)\n然后从index.ts
文件Employee
夹导出
export { EmployeeState, Employee } from './employee'\n
Run Code Online (Sandbox Code Playgroud)\n当我尝试导入时app.tsx
...\nimport { EmployeeState, Employee } from '@components/Employee'\n...\n
Run Code Online (Sandbox Code Playgroud)\n我从 TypeScript 收到此警告:
\nWARNING in ../src/components/Employee/index.ts 4:0-53\n`export 'EmployeeState' (reexported as 'EmployeeState') was not found in './employee' (possible exports: Employee)`\n
Run Code Online (Sandbox Code Playgroud)\n我能够通过进行以下更改来修复警告:
\n老的:
\nexport { EmployeeState, Employee } from './employee'\n
Run Code Online (Sandbox Code Playgroud)\n新的:
\nexport * from './employee'\n
Run Code Online (Sandbox Code Playgroud)\n但我仍然不明白为什么它不能反过来工作。
\nCWS*_*tes 45
我也遇到了这个问题,经过一番挖掘后发现了这个 GitHub 问题,如果感兴趣的话可以详细了解:https://github.com/webpack/webpack/issues/7378#issuecomment-683894656
无论哪种方式,解决方案都是您type
需要以不同的方式导出。将您的代码更新为以下内容应该可以解决您的问题。
export { Employee } from './employee'
export type { EmployeeState } from './employee'
Run Code Online (Sandbox Code Playgroud)
如果您想了解更多有关其背后的方式和原因的信息,这里有一篇好文章:https://javascript.plainenglish.io/leveraging-type-only-imports-and-exports-with-typescript-3-8- 5c1be8bd17fb
归档时间: |
|
查看次数: |
17917 次 |
最近记录: |