将枚举用作类型/接口

4

在将JavaScript枚举转换为TypeScript时,我不得不添加自己的枚举——myEnumType

如果我将这样的枚举用作属性类型:

prop:myEnumType

预期值必须是 myEnumType 类型。

在 TypeScript 中,我们如何声明一个代表枚举本身而非其类型值的属性?

我正在尝试通过接口属性将枚举公开为一种类型。

2个回答

4
我将尝试通过接口属性将枚举暴露为一个类型。
你可以在vendor.d.ts中声明一个枚举,例如:
declare enum MyEnumType {
   Member1,
   Member2,
}

更新

我该如何通过接口属性声明枚举的属性作为类型呢?

interface Foo {
  prop: MyEnumType
}

那我如何通过接口属性声明一个枚举类型的属性呢? - vitaly-t
有点吧。我想了解你是如何实现的...vendor.d.ts文件有什么特殊之处吗?或者添加declare会改变枚举类型吗?能否请您解释一下解决方案? - vitaly-t
这些被称为环境声明,我在这里进行了介绍:https://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html - basarat

2
在我的myEnumType.ts类中:
export enum MyEnumType {
  Member1,
  Member2
}

在Foo.ts类中
import { MyEnumType } from './myEnumType';
export interface Foo {
  prop: MyEnumType;
}

我们如何从接口数据中访问枚举值? - Srinath Kamath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接