Typescriptで型を定義するためにenumsメンバの値を使用する方法を理解することに苦労しています。enum値を型として(Typescriptで)予期しない動作が発生する
私はTypescriptでは、プリミティブオブジェクトを型の値として指定することで単項型を定義できることを理解しています。また、enumメンバーには数値が関連付けられています。
次の例では、タイプがnewType
の列挙型メンバーのエイリアスです。変数d
で最後の行に何が起こるかを除いて、すべて意味があります。
const enum blah {
test = 1,
};
type newType = blah.test;
var a: newType = 'a'; // ERROR (Type '"a"' is not assignable to type 'blah'.)
var b: newType = blah.foo; // ERROR (Property 'foo' does not exist on type 'typeof blah'.)
var c: newType = blah.test; // WORKS
var d: newType = 123; // WORKS...???
最後の割り当てはエラーなしで機能します。それについての説明は何ですか?
(元の例では、活字体で単項の種類についての議論の間に、私の同僚の@michaelkyriacouから来ました。)
ので、あなたの例では、理にかなってちょうど '' number'あなたの例ではnewType'ありませんか? – Raven
@Raven私が期待しているのは、型が値 '1'であり、 'number'ではないということです。これは、 'type newType = 1'を実行すると起こります。 –