Typescript: рдХреЗ рд▓рд┐рдП .. рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдордИ 2015  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ for (let value of values) рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдЕрд░реНрдерд╛рдд:

for (let value of myMap.values()) {
    doSomething(value);
}

# 2695 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рддред

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

рдореБрдЭреЗ рдпрд╣ рд╡рд╛рдХрдИ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЖрдЬ рдЯреНрд░реЗрд╕реЗрд░ рдФрд░ рдмреИрдмреЗрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд▓рдХреНрд╖реНрдп рдИрдПрд╕ 5 рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдЯреАрдо рдЯреНрд░реЗрд╕реБрд░ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдпрд╣ рд╕реАрдорд╛ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧреАред рдЬрдм рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ ES6 рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реЛрдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES5 рдХреЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП ES5 рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдпрджрд┐ рдЖрдкрдХрд╛ рд▓рдХреНрд╖реНрдп ES6 рд╣реИ рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдордд рд╣реИ:

interface MyMap<T> {
    values(): Iterable<T>;
}
var myMap: MyMap<string>;

for (let value of myMap.values()) {
    var s: string = value;
}

рдИрдПрд╕ 5 / рдИрдПрд╕ 3 рдореЗрдВ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИ:

  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░-рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдпрд╛рдиреА рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХреЛрдб рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рд╕реНрд░реЛрдд рдХреЗ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред
  • рдкреВрд░реНрдг рдкреБрдирд░рд╛рд╡реГрддрд┐ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рд╕реЗ рдПрдХ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд┐рд╕реЗ рд╣рдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
  • рдЙрддреНрдкрдиреНрди рдкреВрд░реНрдг рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ () рдФрд░ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдпрджрд┐ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЗрд╖рдг, рджреЛ рдкреНрд░реЙрдкрд░реНрдЯреА рд▓реБрдХрдЕрдк рдФрд░ рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд▓реЛрдХреЗрд╢рди рд╣реИред рд╣рдордиреЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХреЛрдб рдХреЛ рд╕рд░рд▓ рд░рдЦрдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднрд░реЛрд╕реЗрдордВрдж рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ
  • рдЕрдВрдд рдореЗрдВ рдХрд╕реНрдЯрдо рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╡рд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕реЗ рдРрд░реЗ рдкрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрд░реЗрд╕ рдХреЗ рдкрд╛рд╕ ES5 / ES3 рдореЗрдВ рдпрд╣ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдЯрд╛рдЗрдк-рдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдорд┐рдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдПрдХ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реИред рдФрд░ рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рд░рдгреА рдкрд░ рд▓реВрдк рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд▓рд╛рдЧрдд рдХреЛ рдЙрдХрд╕рд╛рдПрдЧрд╛ред

рдЗрди рдХрд╛рд░рдХреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, ES3 / ES5 рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ..рдЗрд╕рдореЗрдВ рд▓реВрдкреНрд╕ (рдЖрдЬ рдЬреЗрдПрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рдЖрдо рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ); ES6 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗ рд░реВрдк рдореЗрдВ (рдпрд╛рдиреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдЗрдВрдЬрди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде) рдХрд╕реНрдЯрдо iterables рдХреЛ рдРрд░реЗ, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдореИрдк рдФрд░ рд╕реЗрдЯ, рдЖрджрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИред

рд╕рдордЭ рд▓рд┐рдпрд╛...
@mhegazy рдЖрдкрдХреА рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !!!

рдореБрдЭреЗ рдпрд╣ рд╡рд╛рдХрдИ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЖрдЬ рдЯреНрд░реЗрд╕реЗрд░ рдФрд░ рдмреИрдмреЗрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд▓рдХреНрд╖реНрдп рдИрдПрд╕ 5 рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдЯреАрдо рдЯреНрд░реЗрд╕реБрд░ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдпрд╣ рд╕реАрдорд╛ рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧреАред рдЬрдм рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ ES6 рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реЛрдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES5 рдХреЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП ES5 рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ ES6 рдХреЛ рдЯрд╛рд░рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЯреНрд░реЗрд╕реБрд░ рдпрд╛ рдмреИрдмреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрдпрддрди рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрдЯреЗрд░реЗрдЯрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдм --downlevelIteration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдп ES3 / ES5 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП # 12346 рджреЗрдЦреЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯреАрдПрд╕ 2.3 рдХреЗ рд▓рд┐рдП рддрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЯреАрдПрд╕ 2.3.3 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░

      for (let [ i, observationPoint ] of observationPointsList.entries())
        observationPoints[ observationPoint.spot || (i + 1) ] = observationPoint;

рдЬрд╣рд╛рдВ observationPointsList ObservationPointModel[] , рдЙрдкрдЬ:

[11:30:56]  typescript: src/models/observation-set.ts, line: 44 
            Type 'IterableIterator<[number, ObservationPointModel]>' is not an array type or a string type. 

рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

@ рд▓рд▓рдирд╛рде рдХреЛ рдЖрдкрдХреЛ --downlevelIteration рд╡рд┐рдХрд▓реНрдк рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ ред

рдЖрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред рдореИрдВ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╛ # 12346 рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ - рдпрд╣ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдкреАрдЫреЗ рдХреНрдпреЛрдВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░рд╣реЗрдЧрд╛?

@ рд▓рд▓рдирд╛рде рдпрд╣ 2.3 рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд╣реИ ред рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, iterables (рд╕рд░рдгрд┐рдпреЛрдВ рд╕рд╣рд┐рдд) рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░реЗрдбрдСрдлрд╝ рдмрдврд╝реЗ рд╣реБрдП рдореВрд▓реНрдп рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдзреАрдорд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рдирд╛ рдПрдХ рдЭрдВрдбрд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдФрдЪрд┐рддреНрдп рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

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

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

kyasbal-1994 picture kyasbal-1994  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

Roam-Cooper picture Roam-Cooper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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