我以独立于生态系统的方式编写打字稿代码。我决定在导入中包含文件扩展名,以匹配 Web 和 Deno。
import xyz from "./foo.ts";
我怎样才能获得打字稿编译器(tsc
)编译这些文件不会出现以下错误:
error TS2691: An import path cannot end with a '.ts' extension.
到目前为止,我已经尝试了以下方法tsconfig.json
无济于事:
{
"compilerOptions": {
"paths": {
"*.js": ["*"],
"*.ts": ["*"]
},
...
},
...
}
你可以通过告诉编译没有错误tsc
忽略所有这些import
声明。
// @ts-ignore
import xyz from "./foo.ts";
要理解为什么你无法通过配置摆脱它,我们必须深入研究 TypeScript 不希望你使用.ts
内部的扩展import
陈述。
tsc
不会重写模块文件名,所以如果你给它
import xyz from "./foo.ts"
它不会产生foo.js
文件,生成的编译后的 ECMAScript(无论您指定的版本)仍然显示要导入./module.ts
。由于编译为 ECMAScript 的目的是摆脱 TypeScript 文件,因此引用.ts
输出中的文件显然不好。
你想要的已经在 TypeScript GitHub issues 中提出(参见#27481 https://github.com/Microsoft/TypeScript/issues/27481, #11901 https://github.com/microsoft/TypeScript/issues/11901)。您可以考虑加入 GitHub 上的讨论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)