使用atom-typescript
和ts-node
我可以直接运行打字稿源而无需先编译它。但是,当我编译它并尝试从源中导入相同的文件时,它们会以不同的格式显示。
这是我的index.ts
文件:
import {_for} from './for';
import {_forEach} from './forEach';
import {_while} from './while';
export let PromiseChain = {
for: _for,
forEach: _forEach,
while: _while
}
编译为:
"use strict";
var for_1 = require('./for');
var forEach_1 = require('./forEach');
var while_1 = require('./while');
exports.PromiseChain = {
for: for_1._for,
forEach: forEach_1._forEach,
while: while_1._while
};
//# sourceMappingURL=index.js.map
从我的测试文件中,我尝试首先从../dist/index
导入PromiseChain对象,然后从./index
导入相同的对象。它看起来像这样 -
import * as PromiseChainDist from '../dist/index';
import * as PromiseChainSrc from './index';
问题是。 Dist包含导出的成员for
,forEach
和while
。而Src包含PromiseChain
。
这可以在以下屏幕截图中看到 -
我应该期望它们的行为相同吗?我应该让他们表现得一样吗?我希望能够用dist -
做到这一点/// ES5
var PromiseChain = require('promise-chain');
PromiseChain.for(...);
/// ES6
import {PromiseChain} from 'promise-chain';
PromiseChain.for(...);
为什么我可以使用src而不是dist?
修改
情节变浓。只是测试dist导入。它看起来像这样 -
但这说PromiseChain.for
不是一个功能。记录PromiseChain后得到这个! -
{ PromiseChain:
{ for: [Function: _for],
forEach: [Function: _forEach],
while: [Function: _while] } }
这意味着它应该看起来像这样 - PromiseChain.PromiseChain.for
这是不可取的。但是,我仍然无法直接导入PromiseChain。
这绝对好像是一个错误。
修改编辑:
如果我这样构造它 -
export = {
for: _for,
forEach: _forEach,
while: _while
}
import * as PromiseChain from ...
确实有效。我仍然希望import {PromiseChain}
能够......