Pixi.js: рдорджрдж рдЪрд╛рд╣рд┐рдП: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдЕрдкрдбреЗрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдлрд╝рд░ре░ 2020  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рд╣реИрд▓реЛ рдкрд┐рдХреНрд╕реАрдЬреЗрдПрд╕ рд╕рдореБрджрд╛рдп,

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

рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрд╡реЛрдВ рдХреЗ рд╣рд╛рде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреИрдХреЗрдЬ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдкреИрдХреЗрдЬ рд╣реИред рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдореМрдЬреВрджрд╛ рдкреВрд░реНрдг рдкреАрдЖрд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЧреЛрдЪреНрдп рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛

  • рд╣рдо рд╕рдм рдХреБрдЫ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ JSDocs рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЯрд╛рдЗрдкрдбреЙрдХ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВред рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк JSDocs рдмрдирд╛рдП рд░рдЦреЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рдЕрднреА рднреА npm run docs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрдирддреЗ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ
  • рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреАрдПрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ git mv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЧрд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдХреБрдЫ рдЧрд┐рдЯ рдЬреАрдпреВрдЖрдИ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдХреГрдкрдпрд╛ public рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдХреЗрд╡рд▓-рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдпрд╛ рд╕рджрд╕реНрдпреЛрдВ рдореЗрдВ рди рдЬреЛрдбрд╝реЗрдВ, рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЫреЛрдбрд╝ рджреЗрдВред

рд╕рдВрдХреБрд▓

рдкреИрдХреЗрдЬ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдлреНрдЯ рдкреАрдЖрд░ рдмрдирд╛рдПрдВ

  • [x] @pixi/accessibility #6379
  • [x] @pixi/app #6376
  • [x] @pixi/constants #6173
  • [x] @pixi/core #6340, #6373
  • [x] @pixi/display #6261, #6339, #6349, #6371
  • [x] @pixi/extract #6381
  • [рдПрдХреНрд╕] @pixi/graphics #6352
  • [x] @pixi/interaction #6656
  • [x] @pixi/loaders #6385
  • [x] @pixi/math #6141
  • [рдПрдХреНрд╕] @pixi/mesh-extras #6396
  • [x] @pixi/mesh #6382
  • [x] @pixi/mixin-cache-as-bitmap #6630
  • [x] @pixi/mixin-get-child-by-name #6621
  • [x] @pixi/mixin-get-global-position #6637
  • [x] @pixi/particles #6449
  • [x] @pixi/polyfill #6654, #6669
  • [x] @pixi/prepare #6481
  • [x] @pixi/runner #6164
  • [x] @pixi/settings #6315
  • [x] @pixi/sprite-animated #6397
  • [x] @pixi/sprite-tiling #6398
  • [x] @pixi/sprite #6375
  • [x] @pixi/spritesheet #6389
  • [x] @pixi/text-bitmap #6479
  • [x] @pixi/text #6390
  • [x] @pixi/ticker #6186
  • [x] @pixi/unsafe-eval #6655
  • [x] @pixi/utils #6262
  • [x] @pixi/canvas-display #6659
  • [x] @pixi/canvas-extract #6503
  • [x] @pixi/canvas-graphics #6663
  • [x] @pixi/canvas-mesh #6664
  • [x] @pixi/canvas-particles #6622
  • [x] @pixi/canvas-prepare #6657
  • [x] @pixi/canvas-renderer #6499
  • [x] @pixi/canvas-sprite-tiling #6665
  • [x] @pixi/canvas-sprite #6658
  • [x] @pixi/canvas-text #6666
  • [x] @pixi/filter-alpha #6383
  • [x] @pixi/filter-blur #6383
  • [x] @pixi/filter-color-matrix #6383
  • [x] @pixi/filter-displacement #6383
  • [x] @pixi/filter-fxaa #6383
  • [x] @pixi/filter-noise #6383

рдмрдВрдбрд▓

  • [ ] pixi.js-legacy #6673 рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ @bigtimebuddy
  • [ ] pixi.js #6673 рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ @bigtimebuddy

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

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

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

рдЕрдзрд┐рдХ рд╕реБрдЭрд╛рд╡:

  • рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд import (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдЖрдпрд╛рдд рдкреНрд░рдХрд╛рд░) рдХреЛ рдореМрдЬреВрджрд╛ рдЖрдпрд╛рддреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЬрдм рдирдпрд╛ TS рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рд╣реЛрдЧрд╛ рддреЛ рд╣рдо import type рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд▓рд┐рдЯрд░ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдореЙрдбреНрдпреВрд▓ рд╕реЗ import рдХреА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдорд┐рд▓рд╛рдирд╛ рдареАрдХ рд╣реИред

  • рдЖрдк Array<X> рдФрд░ X[] рдиреЛрдЯреЗрд╢рди рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП Array<X> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрд░реНрдл рд╕реВрдЪрд┐рдпрд╛рдВ)ред X[] рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХреА рд▓рдВрдмрд╛рдИ рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИ рдпрд╛ рдпрджрд┐ рдЖрдХрд╛рд░ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдирдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА)ред

  • рдпрджрд┐ readonly рдлрд╝реАрд▓реНрдб рдХреЛ рдХреЗрд╡рд▓ destroy() рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ - рддреЛ рдЖрдк рд╡рд╣рд╛рдВ any рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - readonly рд╣рдЯрд╛ рджреЗрдВред рд╣рдо рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ private field + readonly property рдмрдирд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ @pixi-text рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд╛рд░рддрд╛ред

рдиреЛрдЯ: @ рдкрд┐рдХреНрд╕реА-рдЯрд╛рдЗрд▓рд┐рдВрдЧ рдореЗрдВ PIXI.TilingSprite.from рд╣реЛрдЧрд╛ рдЬреЛ рдЯреАрдПрд╕ рдореЗрдВ рд░рд╛рдд рдореЗрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╕рд┐рд░реНрдл рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ, @qtikiред рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ рддреЛ рдореИрдВ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдореЗрдВ рдСрдирд▓рд╛рдЗрди рд░рд╣реВрдВрдЧрд╛ред

рдареАрдХ рд╣реИ, @qtiki , рдбреНрд░рд╛рдлреНрдЯ рдкреАрдЖрд░ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреА рдкрд╕рдВрдж рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдЧреАред
рдзрдиреНрдпрд╡рд╛рдж!

рдорд╛рдирд╛ред рдбреНрд░рд╛рдлреНрдЯ рдкреАрдЖрд░ рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдареАрдХ рд╣реИ, @qtiki , рдбреНрд░рд╛рдлреНрдЯ рдкреАрдЖрд░ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреА рдкрд╕рдВрдж рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдЧреАред
рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдбреНрд░рд╛рдлреНрдЯ рдкреАрдЖрд░ #6390 рдЦреЛрд▓рд╛ред рдореИрдВрдиреЗ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ .ts рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рдЯреЗрдХреНрд╕реНрдЯ рдкреИрдХреЗрдЬ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЪреАрдЬреЗрдВ рдЪрд▓рд╛рдИ рд╣реИрдВ:

рддреЛ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореМрд▓рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдкрддреНрддрд┐ рдкрд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/microsoft/TypeScript/issues/2521

рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ fillStyle рдФрд░ stroke рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯрд░ рдХреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдШ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рдЬрдм рдпрд╣ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдШ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ CanvasRenderingContext2D fillStyle рдкрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд╛рде рд╣реА рдЯреЗрдХреНрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рд╕реНрд╡рдпрдВ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ new TextStyle - рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реАрдзреЗ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдпрд╣рд╛рдВ рдЧреЗрдЯрд░ рд╣рдореЗрд╢рд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд▓реМрдЯрд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рдЙрд╕реА рдпреВрдирд┐рдпрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдпрд╣ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдореЗрдВ рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ (рдпрд╛ рдХрд╛рд╕реНрдЯ) рдХрд╛ рдХрд╛рд░рдг рдмрди рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рдпрд╣реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

@qtiki
рдЖрдк рдЕрдкрдиреЗ рдкреАрдЖрд░ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреНрдпреЛрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ?

@qtiki
рдЖрдк рдЕрдкрдиреЗ рдкреАрдЖрд░ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреНрдпреЛрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпреЗ рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЛрдЧ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рдФрд░ рдЪрд▓рд╛рдПрдВрдЧреЗ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдкреИрдХреЗрдЬ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рдПрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореБрджреНрджрд╛ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрд▓рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╢реНрди рд╣реИ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

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

рдпрд╣ рд╣рдо рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ: рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛ string | number рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ рд▓реЗрдХрд┐рди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ (рдФрд░ рд▓реМрдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ) string ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЛ string | number рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯрд╛рдЗрдкрдЪреЗрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

class Foo {
    constructor() {
        this._bar = '';
    }

    // error: 'get' and 'set' accessor must have the same type.(2380)
    get bar(): string {
        return this._bar;
    }

    // error: 'get' and 'set' accessor must have the same type.(2380)
    set bar(value: string | number) {
        this._bar = value.toString();
    }

    private _bar: string;
}

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

class Foo {
    constructor() {
        this._bar = '';
    }

    // Return the strictest type possible in the getter.
    get bar(): string {
        return this._bar;
    }

    // Use the same strict type for the setter as the getter.
    set bar(value: string) {
        // Call the conversion function.
        this.setBar(value);
    }

    // Implement a separate conversion function that accepts all supported types.
    public setBar(value: number | string) {
        this._bar = value.toString();
    }

    private _bar: string;
}

рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдкрдврд╝рддреЗ рд╕рдордп рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ number рд╕реЗ bar рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ setBar рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯрд░ рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

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

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

рдореИрдВ рд╕реЗрдЯ* рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╣реИрдХреНрд╕ рдХреЛ рдХрднреА рднреА рд╕реНрд╡реАрдХреГрддрд┐ рдирд╣реАрдВ рджреВрдВрдЧрд╛, @bigtimebuddy рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ any рдкреНрд░рдХрд╛рд░ set* рдкрджреНрдзрддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреЗрдЯрдЯрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╡рд╛рдкрд╕реА (string | number) рдкреНрд░рдХрд╛рд░ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрднреА-рдХрднреА setBar рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг set рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реАрдлрд╝реИрдХреНрд╕ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ _$setBar() :) рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВред

@qtiki рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдХрдИ рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рдиреМрдХрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд┐рдХреНрд╕реАрдЬ рдЯреАрдПрд╕ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдпрд╛ред

рд╣рд╛рдБ, Text рджрд░реНрдж рд╣реИред рд╣рд╛рдВ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ setBar рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╕рдЪ рдХрд╣реВрдВ рддреЛ рдореИрдВ рдХрд╛рдлреА рд╣реИрд░рд╛рди рдерд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╕рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк-рдЬрдмрд░рджрд╕реНрддреА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдПрдХ рд╢рдмреНрдж рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрди рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд┐рдерд┐рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ any рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ:

class Foo {
    constructor() {
        this._bar = '';
    }

    get bar(): string | number {
        return this._bar;
    }

    set bar(value: string | number) {
        this._bar = value.toString();
    }

    private _bar: string;
}

const foo = new Foo();

// TypeScript's flow control will assume from now on that `bar` is a `number`
foo.bar = 42;

function add(a: number, b: number) {
    return a + b;
}

// Call to `add` shouldn't be allowed since the value in `bar` is actually a string
// This will print `4242` instead of `84`
console.log(add(foo.bar, 42));

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╛рдл рд╡рд┐рдХрд▓реНрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛:

class Bar {
    constructor() {
        this._bar = '';
    }

    get(): string {
        return this._bar;
    }

    set(value: string | number) {
        this._bar = value.toString();
    }

    private _bar: string;
}

class Foo {
    constructor() {
        this.bar = new Bar();
    }

    public bar: Bar;
}

const foo = new Foo();
foo.bar.set(42);
console.log(foo.bar.get());

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ set рдПрдХ рдорд┐рд╕рд╛рд▓ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╣реИ рдЬреИрд╕реЗ PIXI.Point рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ Bar рдЙрджрд╛рд╣рд░рдг "рдЬреИрд╕рд╛ рд╣реИ" рдХреЛ рд╣рд░ рдЬрдЧрд╣ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ get рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рджреЛ рд╕реЗрдВрдЯ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдФрд░ рдореБрдЭреЗ рдЕрднреА рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░рд╛ рдкрд┐рдЫрд▓рд╛ рд╕реБрдЭрд╛рд╡ рдЕрдм "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧрд╛, Object.assign рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдЕрдм рд╕реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред рддреЛ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред

рдЕрд░реЗ рд╡рд╣рд╛рдБ, рдореИрдВ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ PixiJS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрдХреЗрдЬ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХреИрдирд╡рд╛рд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ред рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?

@lloydevans рд╣рд╛рдБ !!! рдлреИрдВрд╕реА рддреИрдпрд╛рд░реА рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ-рдмрд┐рдЯрдореИрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рджреЛрдиреЛрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реБрдкрд░ рдЬрдЯрд┐рд▓ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИрдВред

@bigtimebuddy рдмрдврд╝рд┐рдпрд╛! рдореИрдВ рдЯреЗрдХреНрд╕реНрдЯ-рдмрд┐рдЯрдореИрдк рдХрд░рдиреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рдерд╛ред

рд╕реБрдирдиреЗ рдореЗрдВ рддреЛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ! рдПрдХ рдмрд╛рд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреГрдкрдпрд╛ рдПрдХ рдорд╕реМрджрд╛ рдкреАрдЖрд░ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХреЗрдВред

рдареАрдХ рд╣реИ рдХрд░ рджреВрдВрдЧрд╛ред рдореИрдВ рдЕрднреА рдХреБрдЫ рдореМрдЬреВрджрд╛ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдФрд░ рдкреАрдЖрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛ рдФрд░ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░реВрдВрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ npm рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдЕрднреА рднреА рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд┐рд▓реНрдб рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдШрд░ рд╕рднреА рдХреЛ рдлреИрд▓рд╛рдУ! рдмрд╕ рдХреБрдЫ рдкреИрдХреЗрдЬ рдмрдЪреЗ рд╣реИрдВ!

@Zyie , @ivanpopelyshev , @SerG-Y, @eXponenta рдФрд░ рдЕрдиреНрдп рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╡рд╛рд╕ рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреАред

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

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

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

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

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

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

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