Vscode-ng-language-service: рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдирд╡ре░ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/vscode-ng-language-service

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

ngFor рд╕реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдорд╛рди рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдирд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХ рдорд╛рди рдирд╣реАрдВ рд╣реИред

(variable) i
Expected a numeric typeng(0)

рдкреНрд░рдЬрдирди рдХрд░рдирд╛

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ '...'
  2. рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ '....'
  3. рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ '...'
  4. рддреНрд░реБрдЯрд┐ рджреЗрдЦреЗрдВ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдЖрдк рдЬреЛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ рдЙрд╕рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред

рд▓реЙрдЧреНрд╕

рдХреГрдкрдпрд╛ рджреЛ рд▓реЙрдЧ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ:

  1. рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ (рдЯреВрд▓рдмрд╛рд░ рдкрд░ рдЬрд╛рдПрдВ -> рджреЗрдЦреЗрдВ -> рдЖрдЙрдЯрдкреБрдЯ, рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ)
  2. рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ (рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкрде рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ)

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВред

image

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред

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

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реИ:

Expected a number type ng(0)

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП

<div *ngFor="let file of files; let i = index;">
   <p>File #{{i+1}}: {{file.name}}</p>
</div>
....

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

рдореБрдЭреЗ *ngIf рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛
Capturess

рдЗрдВрдбреЗрдХреНрд╕ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ ngFor рд╕реЗ рдЗрдВрдЯрд░рдкреЛрд▓ рдХрд░рддреЗ рд╕рдордп рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдирдВрдмрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

<ng-container *ngFor="let item of items; index as i">

{{i + 1}} <-- Error

</ng-container>

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ keyvalue рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ ngFor рдШреЛрд╖рдгрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

<ng-container *ngFor="let item of items | keyvalue; index as i">

{{i + 1}} <-- No Error

</ng-container>

рдпрд╣рд╛рдВ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдпрд╣ рд╡реАрдПрд╕ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдФрд░ рд╢рд╛рдпрдж "рдХреЛрдгреАрдп рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛" рдХрд╛ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдирдпрд╛ рд╣реИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рдерд╛ рдЬреЛ рдЕрдм рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдареАрдХ рдмрдирд╛рддрд╛ рд╣реИред

<div *ngFor="let product of productItems; let i = index">
      <div *ngIf="i % 3 === 0 " class="card-deck mt-2">
        <div class="card" *ngFor="let item of productItems.slice(i,i+3)">
...

рдкрдВрдХреНрддрд┐ 2 рдФрд░ 3 рдореЗрдВ рдЪрд░ "i" рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ "рдЕрдкреЗрдХреНрд╖рд┐рдд рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдПрдирдЬреА (0)" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реИ:

Expected a number type ng(0)

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП

<div *ngFor="let file of files; let i = index;">
   <p>File #{{i+1}}: {{file.name}}</p>
</div>
....

рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рд▓реЙрдХ рд╣реЛ рдЧрдИ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдорд╛рди рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред

рд╣рдорд╛рд░реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд▓реЙрдХрд┐рдВрдЧ рдиреАрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред

_рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рдмреЙрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреА рдЧрдИ рд╣реИред_

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

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

elira picture elira  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

seangwright picture seangwright  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

mhamri picture mhamri  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ