网站搜索

TypeScript - TSC:为什么引入模块声明会影响 outFile 的内容?


tsconfig.json:

{
    "compilerOptions": {
        "allowJs": true,
        "forceConsistentCasingInFileNames": true,
        "module": "amd",
        "target": "es3",
        "declaration": false,
        "noImplicitAny": false,
        "outFile": "built/index.js",
        "sourceMap": true,
        "moduleResolution": "node",
        "baseUrl": "./node_modules"
    },
    "include": [
        "index.ts",
        "ol4-lab",
        "typings/index.d.ts"
    ]
}

代码:

import Map from "ol/map";

产生:

define("ol4-lab/examples/index", ["require", "exports", "node_modules/ol/map", "node_modules/ol/layer/tile", ...

但是引入这个声明会影响生成的代码:

declare module "ol/map" {
    export default ol.Map;
}

现在它产生:

define("ol4-lab/examples/index", ["require", "exports", "ol/map", "node_modules/ol/layer/tile", 

请注意,“ol/map”中的“node_modules/”已被删除。

问题:这是缺陷还是设计如此,如何避免?