Typescript: рдЖрдпрд╛рдд рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрдСрдлрд╝ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ

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

рд╕реБрдиреЛ,

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

рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдореЙрдбреНрдпреВрд▓ "рдП" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ "рдмреА" рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ "рдП" рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реЛред рд▓реЗрдХрд┐рди рдореИрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рддрд░реНрдХ рдХреЛ "рдП" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореЙрдбреНрдпреВрд▓ "рдП" рдХреЛ рдЖрдпрд╛рдд рдП = рдЖрд╡рд╢реНрдпрдХрддрд╛ ("рдП") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;

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

рдХреНрдпрд╛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

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

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

рдорд┐рд╕рд╛рд▓ рдХреЗ рддреМрд░ рдкрд░:

// B.ts
import s = require("./A");
var x: typeof s;

рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ

var x;

рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдорд┐рд▓рддрд╛ рд╣реИ?

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

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

рдорд┐рд╕рд╛рд▓ рдХреЗ рддреМрд░ рдкрд░:

// B.ts
import s = require("./A");
var x: typeof s;

рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ

var x;

рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдорд┐рд▓рддрд╛ рд╣реИ?

рдУрд╣ рдпрд╣ рдорд╣рд╛рди рд╣реИ! рдпрд╣ рдореЗрд░реЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдЬрд░реВрд░ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрди рдзрдиреНрдпрд╡рд╛рджред :)

рд╣реИрд▓реЛ рдпрд╛рд░реЛ,
рдореЗрд░рд╛ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ рдЬреЛ рдЙрд╕реА рддрд░реНрдЬ рдкрд░ рд╣реИред рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдореЗрд░реЗ рдХрд╛рдо рдЖрдпрд╛ред
рдореИрдВ рдПрдХ рд╡реЗрдмрдкреИрдХ рдореЙрдбреНрдпреВрд▓ рдкреИрд░реЗрдВрдЯ рдЗрдореНрдкреЛрд░реНрдЯ {A, B} рд╕реЗ "рдкреИрд░реЗрдВрдЯ" рд╕реЗ рдХреНрд▓рд╛рд╕реЗрд╕ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ;
рдореИрдВ рдмрд╕ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ a = A ({рдбреЗрдЯрд╛: 1}) рдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА; рдпрд╣ рд╕рдВрдХрд▓рди рдкрд░ рдХреЛрдИ TS рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдПрд░рд░ A рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рджреЗрд╡-рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреИрд╕реЗ рдореЗрд░реЗ "рдорд╛рддрд╛-рдкрд┐рддрд╛" рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рд╣реИред

рдЪреАрдпрд░реНрд╕,
sudeep

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

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

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

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

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

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

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