Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
  • Sign in / Register
N
Neos
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 2
    • Merge Requests 2
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Packages
    • Packages
    • List
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issues
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • MyCard
  • Neos
  • Issues
  • #2

Closed
Open
Opened Apr 06, 2023 by timel@timel
  • Report abuse
  • New issue
Report abuse New issue

使用ts paths和index.ts来减轻导入复杂度

  1. 使用 ts paths 来简化层级导入。比如将../../../store、../../store和../store 统一成@/store

  2. 使用 index.ts 来归并文件夹内的导出,将从单文件导入改成从文件夹导入。

  3. 将默认导出改成具名导出。比如:

// 具名导出
export const add = (a, b) => a + b;
// 默认导出
export default subtract = (a, b) => a - b;

具名导出有几个好处:

  • 比如上面的代码,如何决定哪个是默认哪个不是默认是个问题,同时在使用一个库时,要知道哪个是默认导出通常得去翻源码
  • 优化 IDE 提示
  • 默认导出在使用时可以乱命名,比如使用上面的模块把 subtract 标成 add 也没人知道
  • 同时一个项目里使用同一个模块的默认导出可能会用不同的名字,或者同一个模块使用不同风格的命名方式,这些都会带来不必要的困扰
  • 重构代码时,具名导出很好通过重构工具重命名,而默认导出则不行

Linked issues

  • Discussion
  • Designs
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
0
Labels
None
Assign labels
  • View project labels
Reference: mycard/Neos#2