我正在尝试从服务器和客户端访问在Typescript文件中编写的枚举。该文件名为SocketEndpoints.ts
,包含enum SocketMessages
。
enum SocketMessages{
CONNECTION_SUCCESSFUL
}
我可以使用typescript引用标记从客户端调用枚举。但是,仅从服务器端使用引用标记(并且不使用任何import / require)会导致错误:
message: endPointModule.SocketMessages.CONNECTION_SUCCESSFUL
^
TypeError: Cannot read property 'CONNECTION_SUCCESSFUL' of undefined
正如下面的一个答案中所提到的,我必须在NodeJS上运行的服务器程序中使用import / require语句并“导出”枚举。但是,使用“export”关键字会导致客户端无法访问枚举。请帮我找出一种方法来保持这个枚举通常可以从服务器和客户端轻松访问。我更喜欢只使用参考标签。
如此问题的答案所示:
stackoverflow.com/questions/14659996/reference-tag-pollutes-modules-using-typescript
typescript编译器应遍历所有引用的文件,并将其代码包含在已编译的javascript输出中。但服务器端程序的javascript输出似乎没有。
答案 0 :(得分:0)
您无法使用import
指令将引用标记与实现文件混合匹配(想想在JavaScript运行时中发生了什么 - 加载该脚本的内容是什么?没有。)。< / p>
将export
放在enum
前面,然后使用import
/ require
加载SocketIoEndpoints.ts
。