如何在苗条文件中传输Typescript常量枚举?

如何在苗条文件中传输Typescript常量枚举?,typescript,enums,svelte,Typescript,Enums,Svelte,我的项目中的.svelte文件中的Typescriptconst enums有问题。我有一个类型定义文件,在项目的多个部分之间共享。这里有两个名称空间(事件和过程),每个名称空间由3-4个带有事件/过程名称的枚举组成,一个用于项目的每个部分 所以结构看起来像这样 namespace Shared { namespace Events { const enum Server { BC = "DF", ... } const

我的项目中的
.svelte
文件中的Typescript
const enum
s有问题。我有一个类型定义文件,在项目的多个部分之间共享。这里有两个名称空间(事件和过程),每个名称空间由3-4个带有事件/过程名称的枚举组成,一个用于项目的每个部分

所以结构看起来像这样

namespace Shared {
  namespace Events {
    const enum Server {
       BC = "DF",
       ...
    }
    const enum Client {
       AB = "DB",
       ...
    },
    const enum SomethingElse {
       ...
    }
    ...
  },
  namespace Procedures {
    ...
  }
}
这种方法适用于项目的每一个部分——除了苗条的文件。 因此,如果我试图在任何其他环境(包括相同“部分”的.ts文件)中使用
Shared.Events.Server.BC
,我会得到
DF
。如果我试图在.svelte文件中使用它,在绑定后,在生成的.js文件中,它保持不变:
Shared.Events.Server.BC
。(由于运行时中没有共享,因此无法工作)

由于项目其他部分的技术限制,我无法切换到纯
enum
s

对于捆绑,我使用了Rollup、svelte preprocess和@Rollup/plugin typescript,它们具有非常标准的配置:

    svelte({
        dev: isDevelopment,
        extensions: [".svelte"],
        preprocess: sveltePreprocessor(),
        emitCss: true,
        css: function(css) {
            css.write(path.join(dest, 'bundle.css' ));
        },
        onwarn: (warning, handler) => {
            if (warning.code.indexOf("a11y") !== -1) return;
            handler(warning);
        }
    }),

    typescript({ typeRoots: ["./types/", "./node_modules/@types/"]  }),
    resolve(),
    commonjs({ include: "node_modules/**", extensions: [".js", ".ts"] }),
    ...


我认为目前不支持这一点
svelte preprocess
单独传输每个svelte文件,而不知道“外部世界”,因此它无法知道
Shared.Events.Server.BC
解析为
“DF”
。请记住,不建议混合使用es6和名称空间。看看这个。