Tôi có một SDK bên ngoài được viết bằng JavaScript mà tôi đang sử dụng. Một trong các mô-đun này, Blob
là mới có thể, nhưng cũng hiển thị enum FooEnum
(các thành viên Bar
và Baz
).TypeScript mới và enum tham khảo
Mã cho sử dụng SDK này trong JavaScript là như vậy:
const blobInstance = new Sdk.Blob();
const fooType = Sdk.Blob.FooEnum.Baz;
bây giờ tôi đang cố gắng để viết một giao diện mà tôi có thể đúc SDK này để để cung cấp cho tôi một số an toàn loại. Dưới đây là những gì tôi đã có cho đến nay:
interface BlobInterface { }
enum Foo {
Bar,
Baz
}
interface Sdk {
Blob: {
new(): BlobInterface;
FooEnum: Foo;
}
}
My vấn đề, tuy nhiên, đó là khi tôi tham khảo Blob.FooEnum
, nó nghĩ rằng FooEnum
bản thân thực sự là một thành viên của enum Foo
(tức là nó tin rằng nó là Bar
hoặc Baz
) và, do đó, không cho phép tôi nhận được Baz
từ đó.
Làm thế nào tôi có thể nói với TypeScript rằng Blob.FooEnum
thực sự trỏ đến chính enum và không phải là thành viên của enum?