gpt4 book ai didi

javascript - 将共享/部分模块导入另一个文件

转载 作者:行者123 更新时间:2023-11-28 18:52:44 33 4
gpt4 key购买 nike

假设我有两个文件:

box.ts:

export module Entities {
export class Box { .. Stuff }

origin.ts:

export module Entities {
export class Origin { .. other stuff }

据我了解 javascript,这两个模块应该合并为一个模块,其中包含我的两个类。(出于组织原因,我只是希望它们位于单独的文件中,但 box 和 origin 都是实体。)

现在我有一个需要使用这两个文件的文件:

service-actions.ts:

import {Entities} from '../entities/box';
import {Entities} from '../entities/origin';

... stuff that uses both of those entities.

这给了我错误:

Duplicate identifier 'Entities';

如果我有一个或另一个,它工作正常,但都失败。

有没有办法将这些组合起来,以便我可以在 service-action.ts 文件中执行 Entities.BoxEntities.Origin

唯一的方法是将 BoxOrigin 放在同一个文件中吗?

最佳答案

不要将命名空间(内部模块)与外部模块混合。请参阅this postthis question和其他人反对混合的论点。我发现最好不要完全使用内部模块。我们没有从命名空间中获得任何封装优势。相反,目录是组织代码的一种简单而可靠的方法,并且您已经在使用它们了。

entities/box.ts:

export class Box  { .. Stuff }

entities/origin.ts:

export class Origin  { .. other stuff }

现在,您不必编写 Entities.Box,只需导入 Box 并使用它即可:

import { Box } from '../entities/box';
import { Origin } from '../entities/origin';

关于javascript - 将共享/部分模块导入另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207048/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com