Typescript: рдЧреИрд░-рдЕрд╢рдХреНрдд рдкреНрд░рдХрд╛рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА (ng2) рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдЦреЗрд▓рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2016  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг:

рд░рд╛рдд (1.9.0-dev.20160217)

рдХреЛрдб

export interface QueryMetadataFactory {
    (selector: Type | string, {descendants, read}?: {
        descendants?: boolean;
        read?: any;
    }): ParameterDecorator;
    new (selector: Type | string, {descendants, read}?: {
        descendants?: boolean;
        read?: any;
    }): QueryMetadata;
}

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░:
рдЬрдм рдпрд╣ рд╕рдЦреНрдд рдЕрд╢рдХреНрдд рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдпрд╣ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЪрд░ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

export interface QueryMetadataFactory {
    (selector: Type | string, whatever?: {
        descendants?: boolean;
        read?: any;
    }): ParameterDecorator;
    new (selector: Type | string, whatever?: {
        descendants?: boolean;
        read?: any;
    }): QueryMetadata;
}

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:
рд╕рдВрдХрд▓рди рдкрд░:

node_modules/@angular/core/src/metadata.d.ts(356,32): error TS2459: Type '{ descendants?: boolean | undefined; read?: any; } | undefined' has no property 'descendants' and no string index signature.
node_modules/@angular/core/src/metadata.d.ts(356,45): error TS2459: Type '{ descendants?: boolean | undefined; read?: any; } | undefined' has no property 'read' and no string index signature.
node_modules/@angular/core/src/metadata.d.ts(360,36): error TS2459: Type '{ descendants?: boolean | undefined; read?: any; } | undefined' has no property 'descendants' and no string index signature.
node_modules/@angular/core/src/metadata.d.ts(360,49): error TS2459: Type '{ descendants?: boolean | undefined; read?: any; } | undefined' has no property 'read' and no string index signatu

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

рдпрд╣ рдПрдХ рд╕реАрдорд╛ рд░реЗрдЦрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо

function foo({ a, b }?: { a: number, b: number }) {
}

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

function foo({ a, b }: { a: number, b: number } = { a: 0, b: 0 }) {
}

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

declare function foo({ a, b }?: { a: number, b: number }): void;

рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдФрд░ _рд╣рдд_ рдПрдХ рдмрдЧ рд╣реИред

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

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

рдпрд╣ рдПрдХ рд╕реАрдорд╛ рд░реЗрдЦрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо

function foo({ a, b }?: { a: number, b: number }) {
}

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

function foo({ a, b }: { a: number, b: number } = { a: 0, b: 0 }) {
}

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

declare function foo({ a, b }?: { a: number, b: number }): void;

рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдФрд░ _рд╣рдд_ рдПрдХ рдмрдЧ рд╣реИред

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

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

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

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

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

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

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

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