Typescript: рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдкрд░ рджреГрд╢реНрдпрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ

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

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

Fixed Suggestion help wanted

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

рдареАрдХ рдпрд╣реА рдмрд╛рдд рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдирд┐рдЬреА рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ? рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдПрдХ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд┐рд▓реАред

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

рдЪреВрдВрдХрд┐ рд╕рднреА "рдХрдХреНрд╖рд╛рдПрдВ" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдХрд╛рд░реНрдп рд╣реИрдВ рдФрд░ рдЪреВрдВрдХрд┐ рдЕрдХрд▓реНрдкрдиреАрдп рдлрд╝рдВрдХреНрд╢рди рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рдХрд╣реАрдВ рднреА рд╡рд░реНрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЖрдк рдЙрд╕ рдкрд░ new рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рд╡рд░реНрдЧ рдХреЛ рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ) рдФрд░ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рди рддреЛ рддрддреНрдХрд╛рд▓ рд╣реИрдВ рдФрд░ рди рд╣реА рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╣реИрдВред

рдареАрдХ рдпрд╣реА рдмрд╛рдд рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдирд┐рдЬреА рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ? рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдПрдХ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд┐рд▓реАред

@billccn рдореБрдЭреЗ "рдЬреЗрдПрд╕ рдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдорд╛рд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдк рдЫрд┐рдкрд╛ рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗ"ред
рдЯреАрдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдмрд╛рдд рд╣реИ, рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╕рдордЭрд╛рдпрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХреА рдЧрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдпрддрд╛ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рджреГрд╢реНрдпрддрд╛ рд╕рдВрд╢реЛрдзрдХ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рд░ рдЬрдЧрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдРрд╕реЗ рдЕрдиреНрдп рд╣реИрдВ рдЬреЛ рдЙрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЙрдкрдпреЛрдЧреА рдкрд╛рддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХрд▓рдХ рдЬрд╛рдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

: +1: рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝реИрдХреНрдЯрд░реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢реЛрд░ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рдЬрд╛рдВрдЪ рдХреЗрд╡рд▓ рдЬрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдкреАрдЖрд░рдПрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛, рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдирд┐рдЬреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╛рдиреА рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ?

class A {
    private constructor() {
    }
}

class B extends A { // Should there be an error at A saying: "Cannot extend private class 'A'"?
}

рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ:

class A {
    protected constructor(a?: any)
    private constructor() {

    }
}

class B extends A { // No error since 'A' has a non-private constructor
}

рдЧреИрд░-рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рд╕реЗ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, B рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдирд┐рд╣рд┐рдд рд╕реБрдкрд░ рдХреЙрд▓ рдЕрд╡реИрдз рд╣реИред рддреЛ private constructor рдПрдХ рдХреНрд▓рд╛рд╕ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ sealed / final ред

рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, A рдХреА рдШреЛрд╖рдгрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд╕рднреА рдЕрдзрд┐рднрд╛рд░, рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдорд╛рди рджреГрд╢реНрдпрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рд╡рд╣реА рдирд┐рдпрдо рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ)ред

# 471 рднреА рджреЗрдЦреЗрдВред рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рдЬреА рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?

@benliddicott рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдПрдХрд▓ рд╡рд╕реНрддреБ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдпрд╣ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ

@dsherret protected рдЙрди рд╕рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡реИрдз рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред private рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рднрд╛рд╡ рдЖрдкрдХреЗ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдРрд╕реА рдЬрд╝рд░реВрд░рдд рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред

@benliddicott рдХрднреА-рдХрднреА рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдЖрдЗрдЯрдо 15 рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░:

2. "рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд░реНрдЧ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдпрд╛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЛ рд╡рд░реНрдЧ рдХреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИред рдЙрдкрд╡рд░реНрдЧ рдХреЛ рд░реЛрдХрдирд╛ рдЖрдорддреМрд░ рдкрд░ рдХрдХреНрд╖рд╛ рдХреЛ рдЕрдВрддрд┐рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдИ final / sealed рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреНрд░реАрдЬ рднреА рдХрд░реЗрдВред)

@billccn , рдЙрд╕ рд▓реЗрдЦрдХ рдХреА рд░рд╛рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рддреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреА рд░рд╛рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рдЦреБрдж рдХрд╛ рдЕрдиреБрднрд╡ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡реЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдЬреИрд╕реА рд╕реНрдерд┐рд░ рднрд╛рд╖рд╛ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рддреБрд▓рдирд╛ рдкрд░реНрд▓ рд╣реЛрдЧреА, рдПрдХ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛: http://www.perlmonks.org/?node_id=437623

рдкрд░реНрд▓ рдХреЗ рдкрд╛рд╕ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ, рдирд┐рдЬреА рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЬреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдХреНрд╕рд░ рдХрд╛рдо рдкрд╛рдиреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ: рдореВрд▓ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдиреЗ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХреА рдереА рдЙрд╕рдХрд╛ рдЙрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрд╕реА рддрд░рд╣, рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрди - рдпрджреНрдпрдкрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдЕрдЧрд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЙрд╕ рдирдИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкреНрд░рддрд┐рднрд╛ рдХреЛ рдЖрд╢реАрд░реНрд╡рд╛рдж рджреЗрдЧрд╛;;

рддрдерд╛:

рдкрд░реНрд▓ рдХреЗ рдкрд╛рд╕ рд▓рд╛рдЧреВ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдХрдорд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣реЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдмрдиреНрджреВрдХ рд╣реИ

http://www.perlmonks.org/?node_id=1096925

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рди рд╣реИ, рдФрд░ - рд╣рд╛рдБ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╣реА рд╣реИ, рд▓рдЧрднрдЧ рд╣рд░ рд╕рдореНрдорд╛рди рдореЗрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдк рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрд┐рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдПрд╕реНрдХреЗрдк-рд╣реИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ: obj["propertyName"] ред

рдпрджрд┐ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдпрд╛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдирд╛ рдирд╛рд╕рдордЭреА рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдирд╛рд╕рдордЭ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд░реЛрдХреЗрдВ рдирд╣реАрдВ - рд╡реЗ рдЖрдкрд╕реЗ рдмреЗрд╣рддрд░ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ "рд╕рдВрд░рдХреНрд╖рд┐рдд рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреЗ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИред рдпрджрд┐ TS рдХреЗ рдкрд╛рд╕ рд╡рд┐рдЬрд╝рд┐рдмрд┐рд▓рд┐рдЯреА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдЙрддреНрддрд░ "рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ"ред

рдЕрдЧрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкрд░ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рдореЙрдбрд┐рдлрд╛рдпрд░реНрд╕ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд┐рдЬреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдирд┐рдЬреА рд╕рджрд╕реНрдп рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рднрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

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

class Currency {
    private constructor(private value: number, private type: CurrencyType) {
    }

    static fromNumberAndType(value: number, type: CurrencyType) {
        return new Currency(value, type);
    }

    static fromString(str: string) {
        const value = ...,
              type  = ...;

        return new Currency(value, type);
    }

    // ... omitted ...
}

// error:
const badCurrency = new Currency(5.66, CurrencyType.USD);
// ok:
const goodCurrency1 = Currency.fromNumberAndType(5.66, CurrencyType.USD);
const goodCurrency2 = Currency.fromString("5.66 USD");

рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрд╣ рдПрдХ рдкреНрд░рдмрдВрдзрди рдореБрджреНрджрд╛ рд╣реИ рдПрдХ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

@benliddicott рд╡реИрд╕рд╛ рд╣реА рдЖрдк рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░ рдЯрд╛рдЗрдк рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ :) рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдмрд╕ рдкреНрд▓реЗрди JS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╛
TS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рд▓рд┐рдВрдЯ рдЬреИрд╕реЗ рдирд┐рдпрдо рдмрдирд╛рдПрдВ рдЬреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкрд░ рдирд┐рдЬреА рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреА рдЕрдВрддрд┐рдо рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП: "рдпрд╣ рдЯреВрд▓рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ рди рдХрд┐ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдореБрджреНрджрд╛"ред

@benliddicott рдпрджрд┐ рдХреБрдЫ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рддреЛ рдореБрдЭреЗ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдЬрд┐рд╕рд╕реЗ рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред

рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдХрд┐ рдХреЛрдб рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдПрдХ рдРрд╕реА рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕рдХрд╛ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@dsherret рдирд╣реАрдВ рдпрд╣ рдПрдХ рдордирдорд╛рдирд╛ рдЕрд╡рд░реЛрдз рд╣реИ рдЬреЛ Architecture astronauts : -1 рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ:

@jbondc рдХреНрдпрд╛ рдпрд╣ "рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рддреНрд░реА" рдХреЛрдИ рдЙрдЪрд┐рдд рддрд░реНрдХ рд╣реИ? рдЖрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдорд╛рдирд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдирдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@jbondc рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рддреНрд░реА" рд╢рдмреНрдж рдпрд╣рд╛рдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддреЗ рд╣реИрдВ? рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рд┐рдд рдФрд░ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

рдпрд╣ рдПрдХ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИред

@dsherret рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдмрд╛рдзрд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ?

рдпрд╣ рдХрдИ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, # 4805 рджреЗрдЦреЗрдВ (рдЬреЛ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЕрднреА рд╕реЛрдЪрд╛ рдЧрдпрд╛ рд╣реИ)ред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА # 3578 рдореЗрдВ рдЕрдкрдиреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд┐рдП рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдиреА рдЪрд╛рд╣рд┐рдПред astronaut рд╕рд╛рде рдереЛрдбрд╝рд╛ рдордЬрдмреВрдд рдЖрдпрд╛, рдХрд┐рд╕реА рдХреЛ рдирд╛рд░рд╛рдЬ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдирд┐рдЬреА рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде

рдпрд╣ рдмрд╛рд╣рд░реА рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ред

рдпрд╣рд╛рдБ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ:

module Currency {
    export enum Type {
        CAD = 1.3,
        USD = 1,
    }

    class PrivateCurrency {
        constructor(private value: number, private type: Type) { }
    }

    export function fromNumberAndType(value: number, type: Type) {
        return new PrivateCurrency(value, type);
    }

    export function fromString(str: string) {
        let value = 10;
        let type = Type.CAD;
        return new PrivateCurrency (value, type);
    }
}

рдХрдо рдК-рдИрд╢ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ 'рд╡рд╛рд╕реНрддрд╡рд┐рдХ' рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рдЬреА рд╡рд░реНрдЧ рд╣реИред

@jbondc рдпрд╣

+1

+1

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд░рдбрд╛рд░ рдкрд░ рд╣реИ? рдкреАрдЖрд░ рд╣реЗрд▓рд╛ рдмрд╛рд╕реА рд╣реИ!

+1

+1

+1

: +1: рдлрд╝реИрдХреНрдЯрд░реА рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдорд╛рдлреА рдЕрдЧрд░ рдпрд╣ рдкрд╛рд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рджреЛрд╣рд░рд╛рдиреЗ рдпрд╛ рдмрд╕ рджреЗрд░ рд╕реЗ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рдЬреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

interface ExampleBuilder {
    Instance(): Example;
}

export interface Example {
    Val(): number;
}

export let Example: ExampleBuilder = class ExampleImpl {
    constructor(v: number) {
    }

    Val(): number {
        return 42;
    }

    static Instance(): Example {
        return new ExampleImpl(2);
    }
};

let x = Example.Instance(); // OK: x has type Example
let y = new Example(5);     // ERROR: Cannot use 'new' with an expression whose type lacks a call or construct signature.

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рд▓рдп readonly рдЧрдП

@myitcv рдЕрдм рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ ... рд╢рд╛рдпрдж рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкрд╣реБрдВрдЪ рд╕рдВрд╢реЛрдзрдХ рдЕрднреА рднреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрднреА рдЕрдкрдиреЗ рд╕рднреА рднрд╡рд┐рд╖реНрдп рдХреЗ рдирд┐рдЬреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ // todo: make private once supported рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рд╡рд░реНрддрди рдФрд░ рдмреЗрд╣рддрд░ рдкреНрд░рд▓реЗрдЦрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@dsherret

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реИ рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдорд╛рдирд╛ред рд╣рдо рдЙрд╕ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рднрд╛рд░ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд░реНрдЧ рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рд░рд▓ рд╣реИред

https://github.com/Microsoft/TypeScript/pull/6885 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛

рд╢реБрдХреНрд░рд┐рдпрд╛ @AbubakerB!

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХреБрдЫ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ?
рдЕрдм рддрдХ, рдирд┐рдЬреА рдпрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8.10 рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
рддреНрд░реБрдЯрд┐ TS1089: 'рдкреНрд░рд╛рдЗрд╡реЗрдЯ' рд╕рдВрд╢реЛрдзрдХ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдШреЛрд╖рдгрд╛ рдкрд░ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЖрд╣, рдХрднреА рдирд╣реАрдВред рдмрд╕ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.0 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрд╣, рдХрднреА рдирд╣реАрдВред рдмрд╕ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.0 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╛рде рд╣реА рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ TypeScript 2.0 рдФрд░ рд▓реЗрдмрд▓ Fixed рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред Fixed рдПрдХ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЖрдо рддреМрд░ рдкрд░ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ npm install typescript@next рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.0.2 RC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА TS1089 рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдм рдореИрдВ private рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ?

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.0.2 RC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА TS1089 рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдореИрдВ рдПрдХ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХрдорд╛рдВрдб рдЙрдкрдирд╛рдо рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЖрдкрдХрд╛ рд╕рдВрдкрд╛рджрдХ рдирд╡реАрдирддрдо рдЯреАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рдЧрдИред рдпрд╣ рдХреА рдЧрд▓рддреА рдереА gulp-typescript рдЬреЛ рдХреА рдЧрд▓рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ tsc рдореЗрдВ рдореЗрд░реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж package.json рдФрд░ рдХреНрдпрд╛ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ PATH ред

рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ gulpfile.js рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдерд╛ ...

  1. require рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╣рд▓реЗ рдЧрд▓реНрдк-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
// Tool-Chain: Scripts
var tsc = require("typescript");
var typescript = require('gulp-typescript');
  1. рдореЗрд░реЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХрд▓рдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:
// Task(s): Build TypeScript Outputs
var tsconfig = typescript.createProject("path to tsconfig", { typescript: tsc });
gulp.task('build:scripts', function () {
    let ts = tsconfig.src()
                     .pipe(sourcemaps.init())
                     .pipe(typescript(tsconfig));

    return ts.js.pipe(sourcemaps.write(".")).pipe(gulp.dest(path.join(outputs.root, outputs.scripts)))
});
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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