名为import的打字稿未正确编译-TypeError xxx不是函数

时间:2018-07-20 18:37:27

标签: javascript typescript

我正在为一个小型项目提供Typescript镜头,或者我没有正确的tsconfig设置,或者Typescript只是以不同于babel.js世界中惯用的方式进行编译。

myPackage是一个npm库。 npm lib和客户端项目都应使用所有最新功能在nodejs 8.x下运行。

myPackage-index.ts:

export { default as updateTaskLog } from './updateTaskLog';
export { default as saveGitEvent } from './saveGitEvent';

myPackage已转译:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var updateTaskLog_1 = require("./updateTaskLog");
exports.updateTaskLog = updateTaskLog_1.default;
var saveGitEvent_1 = require("./saveGitEvent");
exports.saveGitEvent = saveGitEvent_1.default;

clienProject-run.ts:

import {
  saveGitEvent,
  updateTaskLog,
} from 'myPackage';

run.js编译了:

const myPackage_1 = require("myPackage"); // what? why is a destructured import transpiled to this?

...
const eventId = await myPackage_1.saveGitEvent(event); // TypeError: myPackage_1.saveGitEvent is not a function

两个项目都使用完全相同的tsconfig.json设置:

{
  "compilerOptions": {
    "target": "ES2017",
    "module": "commonjs",
    "noImplicitAny": false,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "preserveSymlinks": false,
    "types": [
      "node"
    ]
  }
}

为什么将Typescript分解销毁的命名导入转换为单个变量?

是否有任何建议可以使它转译并正确运行?

0 个答案:

没有答案