在ES6 +中导出命名空间

大卫·萨米恩托(David Sarmiento)

我来自Java世界,我正在尝试创建一个具有JSDOC中记录的类型的普通JS(ES2018)应用程序,然后使用TypeScript编译器获取可以与应用程序捆绑在一起的漂亮定义文件。我只有两个主要文件:client.js(包含默认导出的类)和constants.js(带有某些常量的默认导出的对象),都在src /下。我想在公共名称空间下公开这两个,所以我的index.js看起来像这样:

import XApiClient from 'src/brokers/xtb/x_api_client';
import {Constants} from 'src/brokers/xtb/x_api_constants';

/**
 * @namespace
 * @property {Constants} Constants
 * @property {XApiClient} XApiClient
 */
const XApi = {Constants: Constants, Client: XApiClient};
export default XApi;

然后通过npm + git在其他地方使用了整个项目,但是在这个新项目中,Typescript编译器无法识别XApi.XApiClient的类型。我目前非常绝望,正在考虑退出编码并打算照顾山上的山羊。

大卫·萨米恩托(David Sarmiento)

最后,我只需要硬着头皮,然后将所有内容迁移到Typescript,最后,我还要执行另一个步骤,即解析JSDOC标记以获取定义文件。看来错误是由于tsconfig上的配置错误。

FWIW这是我的tsconfig(我使用gts作为基准,还请注意,我正在使用webpack将所有内容打包到一个文件中):

{
  "extends": "./node_modules/gts/tsconfig-google.json",
  "compilerOptions": {
    "outDir": "js/",
    "rootDir": "src/",
    "sourceMap": true,
    "moduleResolution": "node",
    "module": "commonjs",
    "target": "ES2018",
    "lib": ["dom","dom.iterable", "ES2018"],
    "noImplicitAny": true,
    "allowSyntheticDefaultImports": true
  },
  "include": ["src/**/*.ts", "test/**/*.ts"],
  "exclude": ["dist", "node_modules"]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ES6默认和命名导出

来自分类Dev

在ES6编译器中导入/导出

来自分类Dev

Javascript ES6 +命名为默认导出语法

来自分类Dev

javascript es6将符号导入命名空间

来自分类Dev

ES6模块导出默认语法

来自分类Dev

生成es6模块导出

来自分类常见问题

ES6 + JavaScript模块导出选项

来自分类Dev

Javascript Es6默认导出

来自分类Dev

使用ES6导出课程(Babel)

来自分类Dev

ES6的导出和花括号

来自分类Dev

ES6导出默认功能

来自分类Dev

ES6导入/导出语法困难

来自分类Dev

ES6 + BabelJS + Webpack导出类

来自分类Dev

如何导出多个功能ES6

来自分类Dev

不懂导出JavaScript ES6

来自分类Dev

NodeJS ES6:类模块导出

来自分类Dev

ES6 中的导入/导出

来自分类Dev

ES6 导出全局符号

来自分类Dev

ES6模块的名称空间

来自分类Dev

使用es6语法重新导出和展平默认和命名的导出

来自分类Dev

使用es6语法重新导出和展平默认和命名的导出

来自分类Dev

es6语法,用于在一个文件中导出模块

来自分类Dev

如何在Chrome / Firefox中的ES6中导出变量?

来自分类Dev

为什么我不能在ES6中导出名为“导入”的函数

来自分类Dev

为什么在ES6模块中导出的对象具有未定义的方法?

来自分类Dev

为什么我不能在ES6中导出名为“导入”的函数

来自分类Dev

导入es6模块,某些命名的导出未定义

来自分类Dev

如何在ES6中监视命名导出的子功能

来自分类Dev

ES6命名和默认导出之间的可变差异