美文网首页
TSConfig文件详解20

TSConfig文件详解20

作者: 从零开始学ArchLinux | 来源:发表于2024-07-08 07:15 被阅读0次

编译器配置项-compilerOptions

输出相关配置项04

导入辅助代码 - importHelpers

对于某些降级操作,TypeScript 将使用一些辅助代码来执行扩展类、展开数组或对象以及异步操作等操作。默认情况下,这些辅助代码被插入到使用它们的文件中。如果在许多不同的模块文件中使用相同的辅助代码,将可能导致辅助代码重复。

如果启用importHelpers选项,这些辅助代码将从tslib模块导入。这个需要确保tslib在运行时已经被导入。该配置项只影响模块文件,全局的JavaScript代码不会尝试导入模块。

例如,有如下TypeScript代码:

export function fn(arr: number[]) {
  const arr2 = [1, ...arr];
}

启用 downlevelIteration 选项,并将 importHelpers 设置为false

var __read = (this && this.__read) || function (o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
export function fn(arr) {
    var arr2 = __spreadArray([1], __read(arr), false);
}

启用 downlevelIteration and importHelpers选项后,将转换为如下JavaScript代码:

import { __read, __spreadArray } from "tslib";
export function fn(arr) {
    var arr2 = __spreadArray([1], __read(arr), false);
}

如果已经提供自己对这些方法的实现,可以启用 noEmitHelpers选项。

未使用的导入作为values - importsNotUsedAsValues

该选项已弃用,使用verbatimModuleSyntax选型替换。

这个选项控制import如何工作,有如下3个选型值:

  • remove: 默认的行为,如果仅导入类型的引用,那么将移除该import语句。

  • preserve:保留所有未使用的type或者value的import语句,这将导致import副作用被保留。

  • error:像preserve一样保留所有的import,但是导入的值仅仅作为类型时将报错。如果需要避免意外的导入,这个选项将非常有用,但是仍然无法避免副作用。

设置这个选项,是因为可以使用import type语句显式创建一条永远不应该输出到 JavaScript 中的导入语句。

相关文章

网友评论

      本文标题:TSConfig文件详解20

      本文链接:https://www.haomeiwen.com/subject/rjyocjtx.html