搜索词
transformer, 类型检查, transpileModule
建议
运行transformers,但跳过类型检查。
使用场景
大部分编译时间用于类型检查。
一些项目(例如Angular样式表集成)需要运行transformers。
我想跳过类型检查,类似于transpileModule,但仍然运行transformer。
angular/angular-cli#19587
示例
检查清单
我的建议满足以下准则:
- 这不会对现有的TypeScript/JavaScript代码造成破坏性更改
- 这不会改变现有JavaScript代码的运行时行为
- 这可以在不根据表达式的类型发出不同的JS的情况下实现
- 这不是一个运行时特性(例如库功能、带有JavaScript输出的非ECMAScript语法等)
- 这个特性将与TypeScript's Design Goals的其他部分保持一致。
3条答案
按热度按时间htzpubme1#
我们也想要这个功能,对于大型单仓库项目(40+包),tsc构建速度太慢(可能需要10+分钟来编译整个项目),尽管我们可以使用esbuild来加速构建速度,但我们仍然需要生成dts(esbuild不支持),所以我们希望在不进行类型检查的情况下生成dts(这花费了大部分时间),我们还在服务端使用transpileModule将es6代码转换为es5,类型检查会降低构建速度,并且在服务器端没有意义。
dfuffjeb2#
目前还不可能。转换器对类型检查器有一些依赖。
例如:
EmitResolver.createTypeOfDeclaration
我们有:
转换为:
这意味着它不是纯粹的语法转换。我们需要检查类型来创建类型注解
number
。kb5ga3dv3#
对于大型单仓库项目(40+个包),tsc构建速度太慢,只能通过transpileModule来实现。
附注:有点奇怪的是,你不能通过CLI来实现这个功能。