建议
🔍 搜索词
api scriptkind
✅ 可实现性检查清单
我的建议符合以下准则:
- 这不会对现有的TypeScript/JavaScript代码造成破坏性的更改
- 这不会改变现有JavaScript代码的运行时行为
- 这可以在不根据表达式的类型发出不同的JS的情况下实现
- 这不是一个运行时特性(例如库功能、JavaScript输出的非ECMAScript语法、JS的新语法糖等)
- 这个特性将与TypeScript's Design Goals的其他部分保持一致。
⭐ 建议
目前,scriptKind
属性被标记为@internal
,如果能在公共API中暴露出来,那就太好了。
TypeScript/src/compiler/types.ts
第3802行到第3804行 a21024d
| | |
| | /* @internal */scriptKind: ScriptKind; |
| | |
📃 动机示例
我想知道一个SourceFile
是否属于ScriptKind.JS
,这样我就可以只修改.js
文件。
我可以直接检查SourceFile.fileName
是否以.js
结尾。但我更希望利用TypeScript用于检查文件是否为JavaScript文件的相同逻辑。这样我可以确保我的应用程序和TypeScript对于什么是和不是JavaScript文件达成一致。
💻 用例
我已经编写了一个基本的转换器,它会对项目中的文件进行一些修改。现在我想给所有的JavaScript文件添加// @ts-nocheck
。
5条答案
按热度按时间xdyibdwo1#
我刚刚意识到给SourceFiles添加注解并不容易。因此,我的用例在这里不再适用了。
r1wp621o2#
我不认为暴露这个有问题,所以如果你或其他人最终需要这个,请再发一个ping,我们可以更详细地评估。
vsdwdz233#
我刚刚遇到了一个边缘情况,
.mjs
文件没有正确处理。因为我只是检查了if (filePath.endsWith(".js"))
。所以在这里访问scriptKind
属性可能会很有用。目前我正在对scriptKind属性进行类型转换:h7appiyu4#
有任何问题吗?
vyswwuz25#
我想不到其他的了。