为什么此导出的打字稿const不可用于从已编译和捆绑的代码中导入?

时间:2019-07-09 21:31:52

标签: javascript typescript webpack-4 transpiler

我有一些打字稿代码,如下所示:

// file.ts
export const MyValues: {
  [key: string]: string;
} = {
  value: 'This is a value'
};

然后由tsc(模块:ES2015)将其转换为:

// file.js
export var MyValues = {
    value: 'This is a value'
};

以及类似的输入:

// file..d.ts
export declare const MyValues: {
    [key: string]: string;
};

...对我来说似乎正确。

然后将js文件与webpack捆绑在一起。结果为:

// <webpack boostrap stuff>

var MyValues= {
    value: 'This is a value'
};

但是,当我使用此内置库并尝试导入此导出的const时,IDE无法自动导入(即使输入内容存在,并且如果我按Ctrl +单击此常量,它也会找到它),并且如果我这样手动导入:

import {MyValues} from 'mylibrary';

它为null,而不是在该var声明中分配的对象值。

为什么会发生这种情况以及如何解决?

**更新:**我注意到在webpack捆绑代码的底部,我看到了:

__webpack_require__.d(__webpack_exports__, "MyValues", function() { return MyValues; });

但是仍然无法访问它的值。如果我手动导入,它将保持未定义状态。

谢谢!

0 个答案:

没有答案