ts 辅助函数在某些情况下不生效(Bug)

  • Creator 版本: 2.4.4 (旧版不知道)

  • 目标平台:所有

  • 重现方式:必须

在tsconfig.json 中开启 importHelpers:true后。 未改动的文件中 tslib 辅助函数是不会加进去的,依然有tsc自己生成的辅助函数定义,如:

var __extends = this && this.__extends || function() {
  var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf || {
      __proto__: []
    } instanceof Array && function(d, b) {
      d.__proto__ = b;
    } || function(d, b) {
      for (var p in b) Object.prototype.hasOwnProperty.call(b, p) && (d[p] = b[p]);
    };
    return extendStatics(d, b);
  };
  return function(d, b) {
    extendStatics(d, b);
    function __() {
      this.constructor = d;
    }
    d.prototype = null === b ? Object.create(b) : (__.prototype = b.prototype, new __());
  };
}();

若要使其生效,只要让文件有变化即可。

这个问题折腾了很久,而且官方文档也没有提及什么选项会影响到编译,哪些选项能用,哪些不能用,更别提 ‘importHelper’ 选项了。

tsconfig.json所有配置都不能用的, 只影响代码编辑/提示, 不影响编译.
编译集成在编辑器里面了, 没法配置.

你被官方文档忽悠了

这是我实践的结果啊, 确实怎样修改都无法影响辅助函数的添加.
我目前的做法是自己手动添加tslib, 然后用gulp替换掉project.js里面的辅助函数.

可能是因为这是creator的 bug, 官方不敢说。 加了tsconfig选项缺失影响了编译结果。只是修改选项后需要删除 import temp 文件夹,creator彻底重启。 太多问题了

1赞

确实,删除了 import temp 就生效了