FlowTypes如何从私有npm模块导入类型

尤里

我正在编写私有的npm包以供内部使用,我也想在那里包含一些import type {SomeType} from 'our-private-lib'流类型,这些流类型将在内部项目之间共享并以以下格式导入,但是这样做很麻烦,最好的方法是在其中包含流类型npm包?

目前,我正在使用babel转译所有ES代码,然后还flow-copy-source用于将原始文件与已转译的附带.js.flow扩展名的文件一起复制,但是那意味着这些文件的名称应与转译的文件相同?

例如,如果我有文件中/super-schema/index.js

export type SuperSchemaType = {
 prop1: boolean,
 prop2: string
}

const SuperSchema = {
 prop1: true,
 prop2: 'Hello'
}

module.exports = SuperSchema;

然后package.json指向要像这样index.js导出的主文件SuperSchema

module.exports = {
  superSchema: require('./super-schema.js/index.js');
}

然后我可以像这样导入

import {superSchema} from 'our-private-lib';

但是流类型呢?import type { SuperSchemaType } from 'our-private-lib';真的不起作用

TLadd

常规方法是正确的(使用flow-copy-source),但是如果要从模块的主入口点使用类型,则需要以一种或另一种方式导出类型。您可以通过做类似的事情来明确地做到这一点

export type {
  SuperSchemaType
} from './super-schema';

或者,如果您使用的是babel 7,则导出类型*可能对您有用

export type * from './super-schema';

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何导入没有可用类型的 npm 模块?

如果返回类型在私有模块后面,如何指定它?

如何匹配包含模块之外的私有多态变体类型?

如何从私有模块中的公共函数引用私有类型?

在Angular 5中,如何导入没有@types的NPM模块

如何为现有的 npm 插件模块定义类型?

如何使用 Firebase Cloud Functions .npmrc 设置私有 NPM 模块?

私有NPM:如何安装模块的最新版本?

如何从npm发布的模块中导入流注释,类型和接口

如何在 rescript 中将类型构造函数设为私有(当前模块中除外)?

导入模块时struct的字段是私有的

如何从父目录导入npm模块?

如何从寓言中的NPM模块导入功能?

如何在 vue 中导入 npm 模块?

如何隐藏iOS Framework的私有模块?

对私有npm模块使用require()和import失败

部署到Heroku时的本地或私有NPM模块

通过GIT安装私有NPM模块并进行更新?

从gitlab私有存储库安装npm模块

如何在没有我自己的注册表的情况下安装私有NPM模块?

如何限制可以从导入的模块调用哪些函数?我可以将函数设为私有吗?(Python)

如何从自写模块导入类型?

如何从“导出模块”块导入类型?

Docker + Node.js +私有仓库+私有NPM模块-访问问题

来自私有导入的Python类型注释(来自curses)

如何从没有npm / webpack的HTML文件中导入React模块

如何导入具有从github安装的作用域名称的npm模块?

如何使用JSPM导入带有Typescript声明的外部NPM模块

如何导入在Typescript中具有Typescript主文件的npm模块?