有些情况下,在js或者jsx中引用ts或者tsx下导出的代码,明明路径是对的,运行也不报错,但是就是不生效。或者运行时找不到这个路径。把要引用的ts文件改变成js文件后就能正常生效了
这时候需要检查一下在tsconfig.json中是否有"esModuleInterop": true
。加上这句就能解决问题
其根本原因在于,这个"esModuleInterop"
参数修改了导入导出的模块模式(一共有CommonJs、EsModule等几种),不加这句的话,导出的模式不对,所以import不到这个模块,即便你的路径是对的
附录:
在ts中如果想引用js文件又需要怎么做呢?
答:添加对应的.d.ts
文件