TypeScript 支持额外的glob模式格式,例如在include/exclude指定符中的**/*_{test,spec}.ts,

vx6bjr1n  于 5个月前  发布在  TypeScript
关注(0)|答案(5)|浏览(85)

建议

🔍搜索词

✅可行性检查清单

我的建议符合以下准则:

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

⭐建议

a tsconfig.json 示例:

{
  "extends": "@tsconfig/node16/tsconfig.json",
  "include": ["lib/**/*.ts"],
  "exclude": ["**/*.{test,spec}.ts"]
}
  • "exclude": ["**/*.test.ts"] ✅支持
  • "exclude": ["**/*.{test,spec}.ts"] ❌不支持(ts v4.5)

我建议支持这种模式,因为它在js社区中非常广泛使用,例如babel/jest/eslint/...。

💻用例

解决方法:"exclude": ["**/*.test.ts", "**/*.spec.ts"]。但是,为了提高可读性,最好写成一种模式。

vvppvyoh

vvppvyoh1#

但是这已经存在了:https://www.typescriptlang.org/tsconfig#exclude

ogsagwnx

ogsagwnx2#

是的,它支持"exclude": ["**/*.test.ts"],但不支持"exclude": ["**/*.{test,spec}.ts"](glob模式)。

mftmpeh8

mftmpeh83#

也许你应该更清楚地表明你希望支持更先进的glob模式。对于提到的示例,你可以使用:["**/*.spec.ts", "**/*.test.ts"]。添加一个有说服力的使用案例也不会有坏处,因为目前你缺少一个。

6jygbczu

6jygbczu4#

投票支持此功能
用例:如果在npm脚本中使用该命令,则缩短命令长度,即不是8n tsconfig.json文件。

0sgqnhkj

0sgqnhkj5#

从未来来到这里,为这个功能投票以减少大型项目中excludeinclude的愚蠢大小。

相关问题