typescript - 我应该如何从一个包中导出多组类/接口
问题描述
我有一个打字稿包,其中有 2 组类/接口:writeAPI 和 readAPI。两个 API 都有同名的类,例如有一个可写的“节点”和一个可读的“节点”。
我想防止在类的名称中添加组,例如:'WritableNode','ReadableNode'。
是否可以创建一个可以被另一个包使用的包,如下所示:1)
import * as myAPIs from "myAPIs"
const readableNode = new myAPIs.readable.Node()
const writableNode = new myAPIs.writable.Node()
或者(不太喜欢):2)
import * as myReadableAPI from "myAPIs/readable"
import * as myWritableAPI from "myAPIs/writable"
const readableNode = new myReadableAPIs.Node()
const writableNode = new myWritableAPIs.Node()
编辑:
这似乎有效(专门针对我的包裹):
import * as myReadableAPI from "myAPIs/dist/src/readable
我觉得它又丑又长,我想去掉多余的目录。我更喜欢上面的第一个选项。
解决方案
在(最好)两个文件中声明您的 api,/readable.ts
并将/writeable.ts
它们重新导出到/apiEntry.ts
您想要的命名空间下的文件中。
import * as _writable from "./writeable"
import * as _readable from "./readable"
export const writeable = _writable
export const readable = _readable
是的,这看起来有点脏,将你的模块重新声明为常量,但语法export * as namespace from "./module"
不起作用。无论如何,我相信像 terser 这样的缩小器可以解决这个问题。
推荐阅读
- python - 在文件中写入了一些变量名,需要使用 python 替换为新生成的随机值?
- react-native - 由于未经认证的广告 SDK,React Native,Google Play 商店拒绝应用
- batch-file - 批处理文件列出所有文件并将其中一个文件保存在循环中的变量中
- javascript - 基于apache echarts中的逻辑的线条颜色变化
- c# - 连接到 phpmyadmin 数据库的 C# 程序未连接到网络
- crystal-reports - Visual Studio 2019 中的 Crystal Reports 运行时问题
- java - 无法访问测验的 CountDownTimer 我需要它是怎样的
- python - 使用套接字编程将服务器连接到客户端
- objective-c - 处理重复接口
- java - 像布尔值一样处理布尔值,用于生成 Getter/Setter