打字稿没有将枚举编译为数字

詹姆斯·莫里森

我正在尝试使用Typescript本质上使用模式写入json数据,因此我需要Typescript编译器将枚举编译为js输出中的数字,但我无法使用它。

我已经尝试了很多事情,这篇文章与我遇到的问题类似,但是我没有使用awesome-typescript-loader,我也尝试了所有堆栈溢出文章,但没有任何乐趣。我的ts-config在下面

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": false,
    "sourceMap": false
},
    "include": [
      "src/**/*"
    ]
  }

我只是tsc在根目录的命令行中调用,它编译所有内容,但枚举被编译为MyEnum_1.MyEnum.FirstValue我尝试过的其他东西;

  • 将模块更改为各种不同的选项
  • 将目标更改为各种不同的选项
  • 添加不同的选项并使用不同的lib值。

我正在运行tsc -v 3.6.4,并且没有足够的想法,有人遇到过类似的问题吗?

编辑:以下是我要导入的枚举类型的示例

export enum MyEnum {
    Undefined,
    FirstValue,
    SecondValue,
    ThirdValue
}

编辑:我的打字稿文件的一个例子是...

import { MyEnum } from "../../src/models/MyEnum";
import { ItemType } from "../../src/models/ItemType";

var item: ItemType = { 
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum.FirstValue
}

我希望这可以编译为...

"use strict";
exports.__esModule = true;
var MyEnum_1 = require("../../src/models/MyEnum");
var ItemType_1 = require("../../src/models/ItemType");
var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": 1
};

相反,它编译为;

"use strict";
exports.__esModule = true;
var MyEnum_1 = require("../../src/models/MyEnum");
var ItemType_1 = require("../../src/models/ItemType");
var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum_1.MyEnum.FirstValue
};

只要枚举编译为数字,我几乎不在乎它如何编译。

乔治

您正在寻找const枚举

export const enum MyEnum {
    Undefined,
    FirstValue,
    SecondValue,
    ThirdValue
}
var item = { 
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum.FirstValue
}

编译为

var MyEnum;
(function (MyEnum) {
// stuff
})(MyEnum || (MyEnum = {}));

var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": 1 /* FirstValue */
};

并且如果您想完全跳过枚举声明,也将其设置为环境

export declare const enum MyEnum {
   ...
}
var item = { 
    "id": "00000000-0000-0000-0000-000000000000",
    "value": MyEnum.FirstValue
}

给公正

var item = {
    "id": "00000000-0000-0000-0000-000000000000",
    "value": 1 /* FirstValue */
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有打字稿的 create-react-app 将函数编译为非常奇怪的东西

来自分类Dev

如何将具有共享依赖关系的多个打字稿文件编译为单个javascript文件?

来自分类Dev

打字稿编译为单个文件

来自分类Dev

如何使用Gulp将多个打字稿文件编译为一个javascript文件?

来自分类Dev

打字稿对没有数字索引的数组进行读写

来自分类Dev

Angular应用程序:将字符串分配给数字时,没有打字稿错误

来自分类Dev

有关打字稿编译的问题

来自分类Dev

打字稿合并枚举

来自分类Dev

有没有办法将C11编译为C89?

来自分类Dev

Laravel / Composer没有将所有类都编译为Compiled.php

来自分类Dev

如何将较大项目中的一个打字稿文件编译为其他文件扩展名?

来自分类Dev

添加打字稿导入可防止编译为单个js文件

来自分类Dev

webpack会将Angular2打字稿编译为javascript吗?

来自分类Dev

卸载没有节点的打字稿

来自分类Dev

卸载没有节点的打字稿

来自分类Dev

打字稿:从枚举值生成具有映射属性的对象

来自分类Dev

打字稿 [数字,数字] 与数字 []

来自分类Dev

在VS中,有没有办法忽略某些打字稿文件上的错误,但仍将其编译进去?

来自分类Dev

打字稿:接口键枚举

来自分类Dev

打字稿:如何在没有运行时工件的情况下制作通用版本的编译时集?

来自分类Dev

有没有一种方法可以使用Gradle将Kotlin类编译为JavaScript?

来自分类Dev

编译后将打字稿基本赋值到if语句中

来自分类Dev

Visual Studio编译带有确定类型的打字稿的问题

来自分类Dev

将“布尔位数组”转换为打字稿中的数字

来自分类Dev

角度打字稿将字符串转换为数字

来自分类Dev

带有约束的通用打字稿没有密钥

来自分类Dev

将现有的C#代码编译为WebAssembly

来自分类Dev

有没有一种方法可以将打字稿定义添加到“窗口”对象

来自分类Dev

有没有办法在使用 observable 时将复杂的 json 数据映射到打字稿中的接口上?

Related 相关文章

  1. 1

    带有打字稿的 create-react-app 将函数编译为非常奇怪的东西

  2. 2

    如何将具有共享依赖关系的多个打字稿文件编译为单个javascript文件?

  3. 3

    打字稿编译为单个文件

  4. 4

    如何使用Gulp将多个打字稿文件编译为一个javascript文件?

  5. 5

    打字稿对没有数字索引的数组进行读写

  6. 6

    Angular应用程序:将字符串分配给数字时,没有打字稿错误

  7. 7

    有关打字稿编译的问题

  8. 8

    打字稿合并枚举

  9. 9

    有没有办法将C11编译为C89?

  10. 10

    Laravel / Composer没有将所有类都编译为Compiled.php

  11. 11

    如何将较大项目中的一个打字稿文件编译为其他文件扩展名?

  12. 12

    添加打字稿导入可防止编译为单个js文件

  13. 13

    webpack会将Angular2打字稿编译为javascript吗?

  14. 14

    卸载没有节点的打字稿

  15. 15

    卸载没有节点的打字稿

  16. 16

    打字稿:从枚举值生成具有映射属性的对象

  17. 17

    打字稿 [数字,数字] 与数字 []

  18. 18

    在VS中,有没有办法忽略某些打字稿文件上的错误,但仍将其编译进去?

  19. 19

    打字稿:接口键枚举

  20. 20

    打字稿:如何在没有运行时工件的情况下制作通用版本的编译时集?

  21. 21

    有没有一种方法可以使用Gradle将Kotlin类编译为JavaScript?

  22. 22

    编译后将打字稿基本赋值到if语句中

  23. 23

    Visual Studio编译带有确定类型的打字稿的问题

  24. 24

    将“布尔位数组”转换为打字稿中的数字

  25. 25

    角度打字稿将字符串转换为数字

  26. 26

    带有约束的通用打字稿没有密钥

  27. 27

    将现有的C#代码编译为WebAssembly

  28. 28

    有没有一种方法可以将打字稿定义添加到“窗口”对象

  29. 29

    有没有办法在使用 observable 时将复杂的 json 数据映射到打字稿中的接口上?

热门标签

归档