Vscode-ng-language-service: рдлрд╝реАрдЪрд░: рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдирдкреБрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЯрд╛рдЗрдк рдЪреЗрдХ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЕрдЧре░ 2017  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/vscode-ng-language-service

рдЕрдм рдЬрдм рдЖрдк _Directive_ рдпрд╛ _Component_ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд░ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЪреЗрдХ рдпрд╣ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдЗрдирдкреБрдЯ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдорд┐рд▓рд╛рди рдкреНрд░рдХрд╛рд░ рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдпрд╛ рдпрджрд┐ рдпрд╣ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рд╕рдВрднрд╡рдд: _@ рдХреЛрдгреАрдп/рднрд╛рд╖рд╛-рд╕реЗрд╡рд╛_ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд╣реИ

рд╢реБрдХреНрд░рд┐рдпрд╛

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

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИред
рддрдВрдЧ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХреАрдХрд░рдг рдХреЛ Angular2+ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рднрд╛рд░реА рд░реВрдк рд╕реЗ рд╡рд┐рдкрдгрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ~ 50% рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯрд╛рдЗрдк рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдШрдЯрдХреЛрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдирдкреБрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИрдВред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рдХреЗ рднреАрддрд░ рдЦреЗрд▓ рдореЗрдВ рдЖрддреА рд╣реИ, рдЬрдмрдХрд┐ рдШрдЯрдХ рд╕реЗ рдШрдЯрдХ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдпрд╣ рдФрд░ рднреА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдк рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЧрд╛рдпрдм рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рдХреЙрдиреНрдЯреНрд░рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? рдпрд╣ рдХреЛрдгреАрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмреБрд░реА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рдЯрд╛рдЗрдкрд╕реЗрдл рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИред
рддрдВрдЧ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХреАрдХрд░рдг рдХреЛ Angular2+ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рднрд╛рд░реА рд░реВрдк рд╕реЗ рд╡рд┐рдкрдгрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ~ 50% рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯрд╛рдЗрдк рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдШрдЯрдХреЛрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдирдкреБрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИрдВред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рдХреЗ рднреАрддрд░ рдЦреЗрд▓ рдореЗрдВ рдЖрддреА рд╣реИ, рдЬрдмрдХрд┐ рдШрдЯрдХ рд╕реЗ рдШрдЯрдХ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдпрд╣ рдФрд░ рднреА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдк рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЧрд╛рдпрдм рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рдХреЙрдиреНрдЯреНрд░рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ, рд╢рд╛рдпрдж рдЕрд╡рд░реБрджреНрдз: https://github.com/Microsoft/TypeScript/issues/9879

рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ _very_ рдмрдЧ рдкреНрд░рд╡рдг рд╣реИ:

<button (click)="foo('bar')">Click me</button>

рдПрдХ рдмрд╛рдзреНрдп рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде:

// take note of the parameter type, where the template passes through a string.
public foo(bar: boolean): void {
    // ...
}

рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

fullTemplateTypeCheck рдХреЛ tsConfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ ng build рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рдЧрд▓рдд рд╣реИ рддреЛ рдпрд╣ рдмрд╕ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рддрдм рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА рдЬрдм рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдЖрдЗрд╡реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ (рдЗрд╕ рдкрд░ рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ)ред

рдпрд╣ v11.1.0 рдореЗрдВ рдЬрд╛рд░реА рдирдИ рдЖрдЗрд╡реА-рдореВрд▓ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВред
рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕рдВрдкрд╛рджрдХ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ strictTemplates рд╕рдХреНрд╖рдо рд╣реИ angularCompilerOptions ред
рдпрджрд┐ рдЖрдк рд╕рдорд╛рди рдмрдЧ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

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

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

BorntraegerMarc picture BorntraegerMarc  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

sheikalthaf picture sheikalthaf  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yjaaidi picture yjaaidi  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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