Typescript: ES6 рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд░рдгреА рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ (lib.es6.d.ts)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рд╕рд┐рддре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

ES6 рдРрд░реЗ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (lib.es6.d.ts) рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

'рдлрд┐рд▓реНрдЯрд░' рдФрд░ 'рд╕реНрд▓рд╛рдЗрд╕' рдЬреИрд╕реЗ рдПрд░реЗ рдЙрдкрд╡рд░реНрдЧ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

class MyArray extends Array {
    get size() { return this.length; }
}

var x = new MyArray(10).slice();
x.size;

рдлрд╝рдВрдХреНрд╢рдВрд╕ 'рд░рд┐рд╡рд░реНрд╕', 'рдХреЙрдирд╕реИрдЯ', 'рд╕реНрд▓рд╛рдЗрд╕', 'рд╕реНрдкреНрд▓рд┐рд╕', 'рдлрд╝рд┐рд▓реНрдЯрд░' рдХреЛ 'рдЗрд╕' рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред
'рдореИрдк' рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХреБрдЫ:
map<U>(callback: (value: T, index: number, array: this) => U): this<U>

рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдРрд░реЗ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╕реНрдЯреИрдЯрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ, рдЗрд╕реЗ рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

var x = MyArray.of(1,2,3);
var y = MyArray.from([1,2,3]);
x.size;
y.size;

@ @ рд╕реНрдкреЗрд╕рд┐рд╕ рд╕рд┐рдВрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдк-рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ 'рдлрд┐рд▓реНрдЯрд░' рдФрд░ 'рд╕реНрд▓рд╛рдЗрд╕' рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ 'рдЗрд╕' рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рддреЛ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд╡рд░реНрдЧ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

class MyArray2 extends Array {
    static get [Symbol.species]() { return Array; }
}

Chrome рдФрд░ Node.js рджреЛрдиреЛрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

lib.d.ts Suggestion help wanted

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ Array рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрджреНрджрд╛ рд╣рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (https://github.com/Microsoft/TypeScript/issues/183) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Array рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ TC39 рдореЗрдВ рдардк рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд░рд┐рд╡реЗрд╢реАрдп рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП, this рдХреЗ рд╕реНрдерд╛рди рдкрд░ T[] рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ sort рдкрд╣рд▓реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ this рдкрд░ рдЬреЗрдирд░рд┐рдХ рдХреЗ рдкреБрди: рд╕реНрд▓реЙрдЯрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред # 6223 рджреЗрдЦреЗрдВ (рдЬреЛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдореЗрдВ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдЬреЗрдиреЗрд░рд┐рдХ рд╕реНрд▓реЙрдЯ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ this рдХрд╛рдо рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп T рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ T[][] ред рд▓реЗрдХрд┐рди Array this рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд▓реЙрдЯ T[] , рдЖрдк рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ?

рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдореБрджреНрджреЗ рдореЗрдВ рдФрд░ рднреА рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдХреЛ рдЬреЗрдирд░рд┐рдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рдкрд░ рдпрд╣ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред

'рдореИрдк' рдХрд╛ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ 'рдЗрд╕' рдФрд░ рдЬреЗрдирд░рд┐рдХ 'рдореЗрдВ рдЪрд░реНрдЪрд┐рдд рдПрдХ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╕рднреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдПрд░реЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рдХреЗрд╡рд▓' рдЗрд╕ 'рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдХреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВред

рдФрд░ Array.from рдФрд░ Array.of рд╡рд┐рдзрд┐рдпрд╛рдБ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдореИрдВ рдЬрд╣рд╛рдБ рддрдХ рдЬрд╛рдирддрд╛ рд╣реВрдБ, рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рднреА рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ ArrayConstructor рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ Array рдХреЗ 'рдЗрд╕' рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдЗрдВрдЯрд░рдлреЗрд╕ред

рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ Array рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрджреНрджрд╛ рд╣рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (https://github.com/Microsoft/TypeScript/issues/183) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Array рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ TC39 рдореЗрдВ рдардк рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд░рд┐рд╡реЗрд╢реАрдп рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП, this рдХреЗ рд╕реНрдерд╛рди рдкрд░ T[] рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ sort рдкрд╣рд▓реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

uber5001 picture uber5001  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dlaberge picture dlaberge  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zhuravlikjb picture zhuravlikjb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jbondc picture jbondc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

remojansen picture remojansen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ