Typescript modülünde nesne uzanır

oy
3

Ne yapmak istiyorum gerçekten benzer bu ve bu bir modül içinde bir ArrayExtension koymak anlamaya çalışıyorum hariç.

C # uzantısı yöntemler işe şekilde benzer bir şey, sadece modülü alabilir bu şekilde almaya çalışıyorum ve benim ekstra yöntemler olacak. Ben sağlanan bağlantılar varolan nesneyi uzatmak nasıl gösterir, ancak ben bir modül içine saklanması anlamaya edemedik.

Oluştur 11/10/2012 saat 01:52
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Eğer node.js gibi tarayıcı olmayan ortamlarda hedef alıyorsanız gibi sizin modülün global üyelerine referanslar geçmek mümkün olacak çünkü bu mümkün olacak Arraydiğer modüllere. Bu diğer modüller daha sonra nesne ve / veya çağrı modülü tarafından erişilebilir olacak ekstra işlevsellik ile prototip geçirilen uzatabilir. Diğer modüller bu uzantıları almak için aynı şeyi gerekir; ithalat açık olduğundan bu nedenle çatışmalar en aza indirilmiştir.

Orada sadece bir tanesidir Ancak, tarayıcı ortamlarda bu durum böyle değil windownesne ve üyelerine herhangi bir değişiklik her yerde kullanılabilir. En kısa sürede modüllerinizin herhangi genişletilmiş olarak Arraybu uzantılar, diğer tüm modüllere hizmet verecek - çakışmalar olasılığının artması ve yaklaşık nedenle kod zor hale.

Bunu dedi, ne istediğinizi başarmak gerekir bu nedenle JS desenler ve typescript vardır. Bu tür bir model bir nesne üzerinde ekstra işlevsellik eklemek için olanak sağlayan 'mixin' kalıptır örnek bazında. Daha sonra kurucular bile otomatik olarak gerektiğinde Bir nesneye uygulanan veya olabilir mixin modüller halinde yeniden kullanılabilir kodunu ayırmak olabilir. Iyi bir genel bakış ve uygulama örnekleri için bu bir göz atın: http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/

Cevap 01/11/2012 saat 05:48
kaynak kullanıcı

oy
0

Eğer Dizi tipinde inşa uzatmak için çalışıyorsanız, bir modül içinde bunu yapamaz. Sen uzantısı ArrayEx.ts dosyasında yaşayan ve herhangi modüllerin dışında meydana gerekecektir konum. Bunun nedeni, bir modül içinde yaptım eğer uzanan olurdu ki Foo.Arrayaynı değildir türü Array.

Ama sadece mümkün içeri aktarmak üzere ekstra yöntemler gösterilmesi için modül olmak istiyorum ve gerçekten tüm yapmanız gereken bir ekleme olduğunu söyledi /// <reference path='ArrayEx.ts' />Eğer uzatma yöntemleri için kullanılabilir olmasını istediğiniz herhangi bir dosyaya. Bu temelde aynı şeydir.

Cevap 11/10/2012 saat 07:07
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more