【发布时间】:2018-03-23 08:59:47
【问题描述】:
我正在使用一个用 JavaScript 编写的外部 SDK。其中一个模块Blob 是新的,但也公开了一个枚举FooEnum(成员Bar 和Baz)。
在 JavaScript 中使用这个 SDK 的代码是这样的:
const blobInstance = new Sdk.Blob();
const fooType = Sdk.Blob.FooEnum.Baz;
我现在正在尝试编写一个可以将此 SDK 转换为的接口,以便为我提供一些类型安全性。这是我到目前为止所得到的:
interface BlobInterface { }
enum Foo {
Bar,
Baz
}
interface Sdk {
Blob: {
new(): BlobInterface;
FooEnum: Foo;
}
}
然而,我的问题是,当我引用Blob.FooEnum 时,它认为FooEnum 本身实际上是枚举Foo 的成员(即它认为它是Bar 或Baz)并且,因此,不让我从中得到Baz。
我如何告诉 TypeScript Blob.FooEnum 实际上指向枚举本身并且不是枚举的成员?
【问题讨论】:
标签: javascript typescript types enums typescript-typings