рдирдорд╕реНрдХрд╛рд░, рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрдкрд░ рдЙрдкрдпреЛрдЧреА рднрд╛рд╖рд╛ рд╣реИ :)
рд╡реИрд╕реЗ, рдореИрдВ рдпрд╣рд╛рдБ String Type
рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣реВрдБ https://www.typescriptlang.org/docs/handbook/basic-types.html
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг:
1.8.10
рдХреЛрдб
_hello.ts_
let name: string = "bob";
рдЬрдм рднреА рдореИрдВ рд╕рдВрдХрд▓рди рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдЧрд╛ред
$ tsc hello.ts
../../usr/local/lib/node_modules/typescript/lib/lib.d.ts(16757,13): error TS2451: Cannot redeclare block-scoped variable 'name'.
hello.ts(1,5): error TS2451: Cannot redeclare block-scoped variable 'name'.
_hello.ts_
let aname: string = "bob";
рдореИрдВрдиреЗ lib.d.ts
рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдкрдврд╝рд╛ рдФрд░ рдЗрд╕рдореЗрдВ declare var name: string;
ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдо рдХрд┐рд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЪрд░ name
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ :(
рдпрд╛ рдореЗрд░реЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реИ? рдореИрдВ рдПрдХ рдЬрд╡рд╛рдм рдлрд┐рд░ рд╕реЗ рдЦреЗрд▓рдирд╛ рдЙрдореНрдореАрдж :)
рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА _global рдЧреБрдВрдЬрд╛рдЗрд╢_ рдкрд░ name
рдирд╛рдордХ рдПрдХ рдЪрд░ рд╣реИред рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ, console.log(name)
рдФрд░ рдЖрдкрдХреЛ undefined
рдмрдЬрд╛рдп рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ) рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдЕрдкрдирд╛ рдирд╛рдо рдЪрд░ _module_ рдпрд╛ namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
рдЗрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди: https://developer.mozilla.org/en-US/docs/Web/API/Window/name : рдЧреБрд▓рд╛рдм:
@basarat
рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕рдХрд╛ рдРрд╕рд╛ рдЕрд░реНрде рд╣реИ ...
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА name
рдЪрд░ рд╣реИ :)
@DanielRosenwasser
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА _global рдЧреБрдВрдЬрд╛рдЗрд╢_ рдкрд░
name
рдирд╛рдордХ рдПрдХ рдЪрд░ рд╣реИред рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ,console.log(name)
рдФрд░ рдЖрдкрдХреЛundefined
рдмрдЬрд╛рдп рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ) рджрд┐рдЦрд╛рдИ рджреЗрдЧреАредрдареАрдХ рдХрд░
рдЕрдкрдирд╛ рдирд╛рдо рдЪрд░ _module_ рдпрд╛
namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html