私は列挙の整数値を使用し、の一つは列挙のキーを使用してそのうちの一つ活字体中の2つのインターフェースがあります。私はasNumbers
を実装するオブジェクトを取得し、実装するオブジェクトに変換したいTypescript列挙型の整数をキーの和集合の型としてそのキー値に変換するにはどうすればよいですか?
enum foo {
bar = 0,
baz,
}
interface asNumbers {
qux: foo
}
interface asStrings {
quux: keyof typeof foo
}
をasStrings
。
const numberObject: asNumbers = {
qux: foo.bar
}
const stringyObject: asStrings = {
quux: foo[numberObject.qux]
}
私もstringyObject割り当てにかかわらず、次のエラーが表示されます。私は、次のコードを持っています。
Type '{ quux: string; }' is not assignable to type 'asStrings'.
Types of property 'quux' are incompatible.
Type 'string' is not assignable to type '"bar" | "baz"'.
私がその整数値を取り、それが(より一般的なstring
種類に頼らずに)タイプセーフな方法で重要だに変換することができますどのように私には不明です。また、ユースケース満たしながらあなたには、いくつかの型の安全性を提供して関数を定義することができTypescript playground link