我应该如何从一个包中导出多组 classes/interfaces
How should I export multiple groups of classes/interfaces from a package
我有一个打字稿包,其中有 2 组 classes/interfaces:写API 和读API。
两个 API 都具有相同的名称 class,例如,有一个可写的 'Node' 和一个可读的 'Node'.
我想阻止以 class 的名称添加组,例如:'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
我觉得它又丑又长,我想去掉多余的目录。我更喜欢上面的第一个选项。
在(最好)两个文件 /readable.ts
和 /writeable.ts
中声明您的 api,然后将它们重新导出到您想要的命名空间下的 /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 这样的 minifier 可以解决这个问题。
与@MaximilianMairinger 所写的相反,export * as myNamespace from "./module"
实际上对我有用。
我有一个打字稿包,其中有 2 组 classes/interfaces:写API 和读API。 两个 API 都具有相同的名称 class,例如,有一个可写的 'Node' 和一个可读的 'Node'.
我想阻止以 class 的名称添加组,例如:'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
我觉得它又丑又长,我想去掉多余的目录。我更喜欢上面的第一个选项。
在(最好)两个文件 /readable.ts
和 /writeable.ts
中声明您的 api,然后将它们重新导出到您想要的命名空间下的 /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 这样的 minifier 可以解决这个问题。
与@MaximilianMairinger 所写的相反,export * as myNamespace from "./module"
实际上对我有用。