我想使用eslint来要求JavaScript/TypeScript文件导出给定名称的命名导出。
例如,在我的src/pages
目录中,我希望导出名为config
的命名导出所需的所有文件:
无效示例
src/pages/index.js
export const Page = () => {}
// Error: no export named `config`
字符串
有效示例
src/pages/index.js
export const Page = () => {}
export const config = {}
型
这在目前是可能的吗?我已经看过各种eslint规则,当然还有eslint-plugin-import,但还没有找到任何适合这个确切目的的东西。
如果有人有任何关于如何在TypeScript中为这个config
导出强制特定类型的想法,那就再加一分。
1条答案
按热度按时间w8biq8rn1#
有点晚了,但这里有一些示例代码,我已经验证了工作。我写了基本上是这个确切的请求,需要一个StorybookDocumentation类型的导出变量,基本上是为了同一个最终目标。
该方法的一般要点是编写一个custom rule:
1.从Program根节点开始,遍历所有token,寻找与导出相关的token(在我的例子中,我选择使用命名导出,但对下面的逻辑进行轻微调整,您可以针对默认导出)。
1.一旦我将标记缩小到只导出变量及其类型,我就将它们分块到一个[identifier,type]元组数组中。
1.然后我Assert这些元组中至少有一个是具有正确名称和类型的导出变量,否则我报告一个问题。
字符串
然后进行一些测试来验证它的行为是否符合预期
型