美文网首页
TSConfig文件详解25

TSConfig文件详解25

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

    编译器配置项-compilerOptions

    输出相关配置项09

    源代码映射 - sourceMap

    这个选项可以启用源代码映射文件的生成。这些文件允许调试器或者其它工具运行JavaScript代码时显示TypeScrit的源代码。源代码映射文件(.js.map/.jsx.map)作为相应输出的.js 文件的伴生文件。

    .js文件将包含一个 sourcemap 注释,以指示外部工具的文件位置,例如:

    // helloWorld.ts
    export declare const helloWorld = "hi";
    

    sourceMap设置为true进行编译将会创建以下 JavaScript 文件:

    // helloWorld.js
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.helloWorld = "hi";
    //# sourceMappingURL=// helloWorld.js.map
    

    同时也会生成这个json映射文件:

    // helloWorld.js.map
    {
      "version": 3,
      "file": "ex.js",
      "sourceRoot": "",
      "sources": ["../ex.ts"],
      "names": [],
      "mappings": ";;AAAa,QAAA,UAAU,GAAG,IAAI,CAAA"
    }  `
    

    源代码映射文件根位置 - sourceRoot

    指定调试器应定位的 TypeScript 文件的位置,而不是相对源代码映射文件位置。这个指定的位置字符串将在每个.jssourcemap注释中处理,这个字符串可以是一个目录或者URL:

    {
      "compilerOptions": {
        "sourceMap": true,
        "sourceRoot": "https://my-website.com/debug/source/"
      }
    }
    

    以上的配置将在index.js 文件中声明他的源文件为: https://my-website.com/debug/source/index.ts

    忽略内部代码8 - stripInternal

    不要为 JSDoc 注释中具有@internal注释的代码添加declare。这是一个内部编译器选项,使用它你将自行承担风险,因为编译器不会检查生成的结果是否有效。如果你正在寻找一种工具来处理 d.ts 文件中的有关可见性的高级功能,请查看 api-extractor

    /**
     * Days available in a week
     * @internal
     */
    export const daysInAWeek = 7;
    
    /** Calculate how much someone earns in a week */
    export function weeklySalary(dayRate: number) {
      return daysInAWeek * dayRate;
    }
    

    如果将stripInternal设置为false(默认值):

    /**
     * Days available in a week
     * @internal
     */
    export declare const daysInAWeek = 7;
    /** Calculate how much someone earns in a week */
    export declare function weeklySalary(dayRate: number): number;
    

    如果将stripInternal设置为trued.ts文件将生成为:

    /** Calculate how much someone earns in a week */
    export declare function weeklySalary(dayRate: number): number;
    

    而输出的JavaScript代码是一样的。

    相关文章

      网友评论

          本文标题:TSConfig文件详解25

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