Typescript 被转换为 JavaScript,因此模块routes.ts被转换到放置它的routes.js目录中tsc。如果另一个模块从模块导入名称(例如“路由器”),我们将省略后缀,如下所示:
import { router } from './routes'
Run Code Online (Sandbox Code Playgroud)
这工作得很好,直到节点停止用作.js默认后缀。从节点 V16(或者可能更早?)开始,有必要添加该标志
--es-module-specifier-resolution=node才能使用节点运行转译代码。在后来的 NodeJS 版本中,这个选项被默默地转换为降级
--experimental-specifier-resolution=node,然后在 NodeJS v19 中被完全删除。
现在,在 NodeJS v19 中,人们应该改用“自定义加载器”。运行转译的 TypeScript 代码真的那么难吗?推荐的方法是什么?
(SO:说这个问题重复了相关问题Appending .js extension onrelative import statements during Typescript Compilation (ES6modules),但是这个问题有更多关于不同版本的nodeJS的信息——它是相关的,所以人们可能想检查出来。)
是否存在 hashCode 完全等于 Integer.MIN_VALUE 的已知 Java 字符串?为哈希表编写测试有助于避免在执行余数运算之前在哈希码上运行 Math.Abs 的常见错误。
理想情况下,该字符串仅包含 ASCII 字符,但我不确定它是否可行。