2014-09-10 69 views

cevap

8

Bu dil tarifnamenin bir parçası olan (3.2.7 numaralandırma tipleri):

numaralandırma tipi sayısı basit tür için atanabilir ve ters tersine, ancak farklı enum tipi birbirine atanabilir değildir

Böylece karar number ve Enum ve tersi arasında kasıtlı örtülü dönüşümü sağlamak için.

Bu, değerin geçerli olduğundan emin olmanız gerektiği anlamına gelir. - Eğer test( yazdığınızda size enum söyleyecektir

// 1. Enums are useful here: 
test(xEnum.X2); 

// 2. ...and here 
test(yEnum.X2); 

Ve 3.:

function test(x: xEnum) { 
    if (typeof xEnum[x] === 'undefined') { 
     alert('Bad enum'); 
    } 
    console.log(x); 
} 

Uygulamayla ilgili hemfikir olmayabilir de

, bu çeteleler bu üç durumda faydalı olduğunu dikkati çekiyor Var olan birini seçmenizi garanti etmek için kullanabileceğiniz tür.

+0

tamam olduğuna işaret ederek için teşekkürler. Bu akıllıca bir karar mı? Yani, bu durumda, enum türünün hiç bir kullanımı yoktur. – duedl0r

+1

Genellikle web sunucuları ile çalışmak ve daha sonra onun bir numara – basarat

+0

anlamında bilge enemlerin sayılar daha iyi olduğu üç durum ekledim. Davanızı kapsamadığınızı biliyorum (ve eğer '' '' '' enum' dönüşümünü dolaylı olarak kaldırmak için dil özniteliği değiştirildiyse bunu yapabilirdi, bunu kullanmak için hala bazı yararlı nedenler var. Onlar "kötü" değil, sadece "istediğiniz kadar mükemmel değil" :) – Fenton