Maszynopis: Rozszerzanie typów wbudowanych

głosy
14

w jaki sposób można poszerzyć jeden z typów „wbudowane”? np Array?

W JS, zrobiłbym coś takiego

Array.prototype.shuffle = function () { ... };

co jest równoważne w maszynie?

Utwórz 03/10/2012 o 05:05
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
20

Typy są „otwarte zakończył” w maszynopisie, więc można po prostu napisać:

interface Array {
  shuffle: () => any; // <-- Whatever signature you want.
}

A następnie typ jest rozszerzona o nową funkcję (można przypisać funkcję dopasowania podpis do niego).

Należy jednak pamiętać, że rozszerzenie wbudowanych typów (tych w lib.d.ts - takich jak Array) ma problemu obecnie w służbie językowej, ponieważ wewnętrznie buforuje tych powodów perf. Zrobić obejście napisałem-up na http://typescript.codeplex.com/workitem/4 rozszerzyć wbudowaną typów bez błędów w służbie językowej w VS.

Odpowiedział 03/10/2012 o 05:23
źródło użytkownik

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