首页 > 解决方案 > 为什么 TypeScript 编译器重命名我的导入?

问题描述

这是我的 TypeScript 代码:

import lodash from "lodash"

这是生成的 Javascript 代码:

const lodash_1 = require("lodash");

悲伤的脸。为什么 TypeScript 会重命名这个变量?这是出乎意料的,无用的,并且破坏了我编写的一些静态工具。

标签: typescript

解决方案


出乎意料,没用

不,它不是没用的。它被重命名有几个原因,其中之一是相同的名称会导致冲突,例如

import x from 'asdf';
{
  const x = 123; 
  console.log(x);
}
console.log(x);

更多的

如果你有兴趣 Babel 会做类似的命名:

import x from 'asdf';
console.log(x);

变成:

var _asdf = _interopRequireDefault(require("asdf"));
console.log(_asdf.default);

并破坏了我编写的一些静态工具。

设计静态工具以在TypeScript而不是生成的JavaScript上运行


推荐阅读