TypeScript tsserver功能:导入模块说明符偏好:"非相对",但允许兄弟姐妹,

oprakyz7  于 9个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(131)

建议

🔍 搜索词

importModuleSpecifierPreference
允许兄弟节点

✅ 可实现性检查清单

我的建议满足以下准则:

  • 这不会对现有的TypeScript/JavaScript代码造成破坏性的更改
  • 这不会改变现有JavaScript代码的运行时行为
  • 这可以在不根据表达式的类型发出不同的JS的情况下实现
  • 这不是一个运行时特性(例如库功能、JavaScript输出的非ECMAScript语法、JS的新语法糖等)
  • 这个特性将与TypeScript's Design Goals的其他部分一致。

⭐ 建议

让自动导入镜像:
https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-parent-imports.md
或者旧的:
microsoft/tslint-microsoft-contrib#778
新选项可以命名为任何名称,如"non-relative-allow-sibling","no-parent","relative-iff-sibling"等

📃 激励示例

关于“为什么这个特性改进了语言”,这不是一个语言特性,而是一个IDE特性,由TypeScript仓库处理:
TypeScript/src/server/protocol.ts
3b45f4d的第3487行
| | readonlyimportModuleSpecifierPreference?: "shortest"|"project-relative"|"relative"|"non-relative"; |
激励示例:当你自动导入时,你希望以./foo的形式导入,如果在同一目录中,否则类似于@/utils/fooshortest不一定有效,因为../foo可能比例如@/modules/feature/foo更短。

💻 用例

目前使用importModuleSpecifierPreference: "non-relative"原样。

相关问题