Definitelytyped: [рдбреА3] рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░реЗрдВ/рддрдХрдиреАрдХреА рдЛрдг рдореЗрдВ рдХрдореА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдлрд╝рд░ре░ 2018  ┬╖  45рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: DefinitelyTyped/DefinitelyTyped

  • [x] [рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВ](https://github.com/blog/821-mention-somebody-the-re-notified) рд▓реЗрдЦрдХ ( Definitions by: рдореЗрдВ index.d.ts рджреЗрдЦреЗрдВ) рддрд╛рдХрд┐ рд╡реЗ рдХрд░ рд╕рдХреЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛.

    • рд▓реЗрдЦрдХ: @tomwanzek @gustavderdrache @Ledragon

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ #11365, #11365 рдФрд░ #17846 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

D3 рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╢реЛрдзрди/рддрдХрдиреАрдХреА рдЛрдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╣реИред

  • JSDoc: рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЬреЗрдиреЗрд░рд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рд╣рд┐рдд JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ
  • рд╕рдЦреНрдд рдирд▓рдЪреЗрдХ: strictNullChecks рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк true рдкрд░ рд╕реЗрдЯ рд╣реИ
  • рд╕рдЦреНрдд рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд░: strictFunctionTypes рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк true рдкрд░ рд╕реЗрдЯ рд╣реИ
  • TS 2.3: TS 2.3 рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЬреЗрдирд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ

| рдкрд░рд┐рднрд╛рд╖рд╛| рдЬреЗрдПрд╕рдбреЙрдХ | strictNullChecks | strictFunctionTypes | TS 2.3 |
| --- | --- | --- | --- | --- |
| d3 | рдПрди/рдП | | | |
| d3-рд╕рд░рдгреА | | | | |
| d3-рдЕрдХреНрд╖ | | | | |
| d3-рдмреНрд░рд╢ | | | | |
| d3-рддрд╛рд░ | | | | |
| d3-рд╕рдВрдЧреНрд░рд╣ | | | | |
| d3-рд░рдВрдЧ | | | | |
| d3-рд╕рдореЛрдЪреНрдЪ | | | | |
| d3-рдкреНрд░реЗрд╖рдг | | | | |
| d3-рдЦреАрдВрдЪреЗрдВ | | | | |
| d3-dsv | | | | |
| d3-рдЖрд╕рд╛рдиреА | | | | |
| d3-fetch | | | | |
| d3-рдмрд▓ | | | | |
| d3-рдкреНрд░рд╛рд░реВрдк | | | | |
| d3-рдЬрд┐рдпреЛ | | | | |
| d3-рд╣реЗрдХреНрд╕рдмрд┐рди | | | | |
| d3-рдкрджрд╛рдиреБрдХреНрд░рдо | | | | |
| d3-рдЗрдВрдЯрд░рдкреЛрд▓реЗрдЯ | | | | |
| d3-рдкрде | | | | |
| d3-рдмрд╣реБрднреБрдЬ | | | | |
| d3-рдХреНрд╡рд╛рдбрдЯреНрд░реА | | | | |
| d3-рдХрддрд╛рд░ | | | | |
| d3-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ | | | | |
| d3-рдЕрдиреБрд░реЛрдз | | | | |
| d3-рд╕рдВрдХреА | | | | |
| d3-рд╕реНрдХреЗрд▓ | | | | |
| d3-рд╕реНрдХреЗрд▓-рдХреНрд░реЛрдореИрдЯрд┐рдХ | | | | |
| d3-рдЪрдпрди | | | | |
| d3-рдЪрдпрди-рдмрд╣реБ | | | | |
| d3-рдЖрдХрд╛рд░ | | | | |
| d3-рд╕рдордп | | | | |
| d3-рд╕рдордп-рдкреНрд░рд╛рд░реВрдк | | | | |
| d3-рдЯрд╛рдЗрдорд░ | | | | |
| d3-рд╕рдВрдХреНрд░рдордг | | | | |
| d3-рд╡реЛрд░реЛрдиреЛрдИ | | | | |
| d3-рдЬрд╝реВрдо | | | | |

рдХреЛрд░ рдЯреАрдо рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ "рдмрд╛рд╣рд░":

| рдореЙрдбреНрдпреВрд▓ | рдЬреЗрдПрд╕рдбреЙрдХ | strictNullChecks | strictFunctionTypes | TS 2.3 |
| --- | --- | --- | --- | --- |
| d3-рдПрдЪрдПрд╕рд╡реА | | | | |

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

@denisname @gustavderdrache @ledragon рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рдореЗрдВ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! 'рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реБрдВрджрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдореБрд╕реНрдХрд╛рди:

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

@gustavderdrache @Ledragon рдКрдкрд░ рдореИрдВрдиреЗ рдХреБрдЫ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрдЙрд╡рд░ рдХреЗ рджреМрд░ рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдбреА 3 рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕реЗрдЯ рд╣реИред

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рд╣рдо рд╕рднреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ TS>=2.3 рдмрд╛рдзрд╛ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЗрдирд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди/рд╡рд┐рдзрд┐ рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ (рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ) рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рднрд╛рд╖рд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ // TypeScript Version: 2.3 рдмрд╛рдзрд╛ рд╣реИред рдЬреИрд╕реЗ d3-geo , рдЬреЛ geoJson рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реНрд╡рд╛рдЧрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗред

рдЗрд╕реЗ рд╕рдордЭреЗрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдпрджрд┐ рдиреНрдпреВрдирддрдо TS 2.3 рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ $# any рдХреЗ рдмрдЬрд╛рдп object рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛред рдЯреАрдПрд╕ 2.2 рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рдХрд░реВрдВ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрдЯрд░рдкреЛрд▓реЗрдЯрд░ рдФрд░ рдбреА 3-рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреБрдЫ рдЕрд╡рд╕рд░ рдереЗред

рдкрд╣рд▓реЗ рд╡рд┐рдЪрд╛рд░:

  • рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдИ рдЖрдЙрдЯ-рдСрдл-рдореЗрдореЛрд░реА рдмрдЧ рдХреЗ рдХрд╛рд░рдг, рдХреНрдпрд╛ рд╣рдореЗрдВ 2.4 рдХреЛ рд╣рд░ рдЬрдЧрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рдореЗрд░реЗ рдкрд╛рд╕ strictNullChecks рдФрд░ strictFunctionTypes рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдЦрд╛ рд╣реИ ред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛

рдЗрд╕ рдкрд░ рдореЗрд░реА рд░рд╛рдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреЗрдирд░рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛: p

рдЯреАрдПрд╕ 2.3 рдХреЗ рд╕рд╛рде рд╣рдо рдЕрдкреНрд░реИрд▓ 2017 рдореЗрдВ рдПрдХ рд░рд┐рд▓реАрдЬ рдХреЛ рдкреАрдЫреЗ рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
рдЯреАрдПрд╕ 2.4 рдЬреВрди 2017 рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдХреНрдпрд╛ рд╣рдо рдХрдо рд╕реЗ рдХрдо 2.4 (2.3 рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реБрдП рдмрдбрд╝реЗ рдпрд╛ рдирдЧрдгреНрдп/рд╕реНрдерд╛рдкрд┐рдд рдЖрдзрд╛рд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

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

@gustavderdrache рдирдП рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ TS 2.4 рдкрд░ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдкреАрдЖрд░ # 23654 рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЯреАрдПрд╕ 2.4 рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░ рдЬрд▓реНрджреА рд╕реЗ рдХреИрд╕реНрдХреЗрдб рдХрд░рддреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ (рднрд▓реЗ рд╣реА рдпрд╣ рдбреАрдЯреА рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЯреАрдПрд╕ 2.4 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдЬреИрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдирдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реЛ)ред

рдирдП рдкреАрдЖрд░ #23724 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рдЯреАрдПрд╕ 2.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрднреА рддрдХ TS 2.4 рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@Ledragon рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп d3-geo рдХрд╛рдВрдЯрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд▓рдВрдмрд┐рдд рдкреАрдЖрд░ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

23794 рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЧреМрд░рд╡рдкреВрд░реНрдг рдХрд╛рдо рдирд╣реАрдВ, рджреЗрдЦрддреЗ рд╣реИрдВ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓рддрд╛ рд╣реИ...

рдареАрдХ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: d3-geo рдкрд░реАрдХреНрд╖рдг TS 2.3 рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 2.4 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, d3 рд╡реИрд╢реНрд╡рд┐рдХ TS 2.3 рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд▓рд╛рд╣?

рдореИрдВ g3-geo PR рдХреЛ рджреЗрдЦреВрдВрдЧрд╛ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рд╕рдореАрдХреНрд╖рд╛ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ d3- рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде OoM рдмрдЧ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ

d3-contour рдХреЛ 1.2.0 . рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА #24118 рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ d3-contour рдкреНрд░рдХрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА TS2.3 рдореЗрдВ рд╣реИрдВ, рдФрд░ strictNullChecks рдФрд░ strictFunctionTypes рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИрдВ :-)

d3-contour рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдХрд┐рд╕реА рдЕрдЬреАрдм рдХрд╛рд░рдг рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ "рджреЗрдЦрдиреЗ" рдкрд░ рд░реЗрдкреЛ рдирд╣реАрдВ рдерд╛ред рдЙрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛! :рдореБрд╕реНрдХреБрд░рд╛рдУ:

рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рджреЗрдЦреЗрдВрдЧреЗред

рдореИрдВ d3-рдЕрдХреНрд╖ рдФрд░ d3-рдкреНрд░рд╛рд░реВрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рдЦрддреНрдо рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд╡рд╛рд▓ рд╣реИрдВ...

d3-рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореИрдВ d3-рд╕рд░рдгреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдорд╛рди Numeric рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

interface Numeric {
    valueOf(): number;
}

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рддреЗ рд╕рдордп, d3 рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдореБрдЭреЗ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реИ: Module 'd3-array' has already exported a member named 'Numeric'. рдХреНрдпрд╛ d3 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдкреНрд░рдХрд╛рд░ рд░рдЦрдиреЗ рдХреА рдЬрдЧрд╣ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдбреА 3 рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ (рдЗрдВрдЯрд░рдкреЛрд▓реЗрдЯ, рд╕реНрдХреЗрд▓, рдЖрдХрд╛рд░) рдореЗрдВ рдЖрдк рд╕рдВрдШ рдкреНрд░рдХрд╛рд░ number | { valueOf(): number } рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ { valueOf(): number } рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ?

@denisname d3-axis , d3-format рдФрд░ рдмрд╛рдж рдореЗрдВ d3-array рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВрд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж !!!

рдКрдкрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП:

(1) d3-xxx рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрд▓рд┐рдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХрднреА рднреА рдЙрди рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдмрдВрдзрд┐рдд D3 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ d3-axis рдХреА d3-array рдкрд░ рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, d3-axis рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ index.ts рдлрд╝рд╛рдЗрд▓ рдХреЛ d3-axis d3-array рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЬреЗрдПрд╕ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдвреАрд▓рд╛ рдпреБрдЧреНрдорди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рдВрджреЗрд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреА3 рдореЙрдбреНрдпреВрд▓ рдХреЗ $ dependencies рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ package.json _рдиреЛрдЯ: рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ d3-xxx-test.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рд╕реЗ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдФрд░ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрднреНрдпрд╛рд╕ рд╣рдордиреЗ "рдПрдХреАрдХрд░рдг" рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ред рдпрд╛рдиреА рджреЛ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдФрдкрдЪрд╛рд░рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХреЗ рд╕рджрд╕реНрдп "рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ" рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо d3-selection рдХрд╛ рдЙрдкрдпреЛрдЧ d3-selection d3-chord рдПрдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЪрдпрди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯрд░ рдореЗрдВ рдПрдХ рддрд╛рд░ рдкрде рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред_

(2) рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдХрд┐ Numeric рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп D3 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдпрдо (1) рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдореЗрдВ d3-array рд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

(3) рдХреНрдпрд╛ { valueOf(): number } рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ? рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рд╣рд╛рдБред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЪреМрд░рд╛рд╣реЗ рдХрд╛ рдкреНрд░рдХрд╛рд░, рдХреБрдЫ рдЕрддрд┐рд░реЗрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдорд╛рдирд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдШреЛрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╛рдиреА рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдирд╕рд┐рдХ рдХрд▓рд╛рдмрд╛рдЬреА рдХреЗ рдмрд┐рдирд╛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ number рдПрдХ рд╡реИрдз рдкреНрд░рдХрд╛рд░ рд╣реИред :рдЖрдБрдЦ рдорд╛рд░рдирд╛:

d3-рд░рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, prototype рд╕рднреА рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреНрдпреЛрдВ рдХреА рдЧрдИ рд╣реИ? рдЗрд╕ рдХрдорд┐рдЯрдореЗрдВрдЯ рдореЗрдВ @tomwanzek рдиреЗ рдХрд┐рдпрд╛ рд╣реИред

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд╛рдкрд╕ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдо рдЯрд╛рдЗрдкрдЧрд╛рд░реНрдб рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕реАрдзреЗ instanceof рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

let cRGB: d3.RGBColor;
let cHSL: d3.HSLColor;

const c: d3.RGBColor | d3.HSLColor = d3.color("steelblue");

if (c instanceof d3.rgb) {
    cRGB = c;
} else {
    cHSL = c;
}

@denisname рдореИрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ prototype рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдмрд╣реБрдд рд╣реИрдХреА рд▓рдЧрддрд╛ рд╣реИред

рдЖрдЬ рдХреЗ рдЯрд╛рдЗрдк рдЧрд╛рд░реНрдб рд╕реНрдкреЗрдХ рд╕реЗ рдореИрдВ рдЬреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдЙрд╕рдХреЗ рд▓рд┐рдПред рдЗрд╕реЗ рдЕрдм рдПрдХ рд╡реИрдз _construction_ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реВрдЪреА рдЖрдЗрдЯрдо рджреЗрдЦреЗрдВ:

x instanceof C рдлрд╝реЙрд░реНрдо рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЧрд╛рд░реНрдб, рдЬрд╣рд╛рдВ x рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╣реАрдВ рд╣реИ, C рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░ 'рдлрд╝рдВрдХреНрд╢рди' рдХреЗ рдЙрдк-рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рдФрд░ C рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ 'рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк' [...]

рдореИрдВ strictNullChecks рдХреЗ d3-color $ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬреЛ рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рдЪреЗрдВрдЬ рд╣реИред рдпрд╣ prototype рднреА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ, рдЖрдкрдХреЛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрдХреАрд░реНрдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП prototype рд╕рдВрдкрддреНрддрд┐ рдпрд╛ new(): T рдХреЗ рд▓рд┐рдП instanceof $ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ v3 рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ new(): Color рднрд┐рдиреНрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдореБрд╣рд╛рд╡рд░рд╛ рдЕрднреА рднреА D3v4 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рднреА рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП v3 рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо, рджреЛрдиреЛрдВред

@gustavderdrache

d3 v3 рдореЗрдВ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ new() рдХрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рд╣рдореЗрд╢рд╛ prototype рдкреНрд░рдХрд╛рд░ рдЬреИрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди d3 v4 рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднреА рд╣реИ:

export const color: ColorFactory;
export interface ColorFactory extends Function {
    (cssColorSpecifier: string): RGBColor | HSLColor;
    prototype: Color; // and not RGBColor | HSLColor !
}

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, d3.lab(0,0,0) instanceof d3.color рд╕рдЪ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ:

export const color: ColorFactory;
export interface ColorFactory extends Function {
    (cssColorSpecifier: string): RGBColor | HSLColor;
    new (cssColorSpecifier: string): RGBColor | HSLColor;
}

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ prototype рдХреЗ рд▓рд┐рдП ColorFactory рдкреНрд░рдХрд╛рд░ Color рдирд╣реАрдВ рд╣реИред рдФрд░ рдирд┐рдореНрди рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

declare let l: d3.LabColor | null;
declare let c: d3.Color;
declare let nil: null;

if (l instanceof d3.color) {
    c = l; // l is not inferred as `d3.LabColor`...
} else {
    nil = l; // fail, l is a `d3.LabColor | null` should be a `null`
}

рдЖрдк рдХреА рд░рд╛рдп рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ new рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рджред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ prototype рдХреА рд╕рдВрдкрддреНрддрд┐ color() Color рдЪрд╛рд╣рд┐рдП рди рдХрд┐ RGBColor | HSLColor :

> d3.color.prototype === d3.rgb.prototype
false
> d3.rgb.prototype instanceof d3.color
true

color() рдлрд╝рдВрдХреНрд╢рди RGB рдпрд╛ HSL рд░рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЕрдиреНрдп рд░рдВрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рд╕реБрдкрд░рдЯрд╛рдЗрдк рд╣реИред

@denisname @Ledragon @gustavderdrache рдЪреВрдВрдХрд┐ рдЖрдк рд╕рднреА рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╣реИрдВ, рдмрд╕ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд FYI рдХреЗ рд░реВрдк рдореЗрдВ: рдореИрдВ рдЙрди рдЦреБрд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, d3-geo рджрд░рд╡рд╛рдЬреЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ (рдзрдиреНрдпрд╡рд╛рдж @ledragon) рдФрд░ рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ d3-format рдФрд░ d3-axis рдХреЗ рд▓рд┐рдП @denisname рдХреЗ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмрдВрдж рдкреАрдЖрд░ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреАред

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

рдореИрдВ рдЕрдЧрд▓реЗ d3-color рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ 1.1.0 рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, @denisname рдмреЛрд░реНрдб рдкрд░ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

@ рд▓реЗрдбреНрд░реИрдЧрди рдзрдиреНрдпрд╡рд╛рджред

рдореЗрд░реЗ рдкрд╛рд╕ d3-color рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрдбреЗрдЯ рддреИрдпрд╛рд░ рд╣реИ (рдЕрднреА рддрдХ рдХреЛрдИ lhc рдФрд░ gray рдирд╣реАрдВ)ред рдореИрдВ рдмрд╕ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдБред

@gustavderdrache рдиреЗ рдХрд╣рд╛:

рд░рдВрдЧ () рдлрд╝рдВрдХреНрд╢рди RGB рдпрд╛ HSL рд░рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЕрдиреНрдп рд░рдВрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рд╕реБрдкрд░рдЯрд╛рдЗрдк рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдФрд░ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ _typed_ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкрд╣рд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреЗрдЦреЗрдВред рд▓реЗрдХрд┐рди @tomwanzek рдиреЗ рдХреЗрд╡рд▓ new() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ prototype рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдирд╣реАрдВ?...

рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред рдЖрдк new(): Color рдХреЛ ColorConstructor рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

declare namespace d3 {
  interface Color {
    // I forgot what was on the Color interface
    // This property exists just to make Color incompatible with {}
    __isColor: never;
    toString(): string;
  }

  interface RGBColor extends Color {
    r: number;
    g: number;
    b: number;
  }

  interface HSLColor extends Color {
    h: number;
    s: number;
    l: number;
  }

  interface LABColor extends Color {
    l: number;
    a: number;
    b: number;
  }

  interface ColorConstructor {
    (specifier: string): RGBColor | HSLColor;
    new(specifier: string): Color; // <- TS uses this for narrowing with instanceof
  }

  const color: ColorConstructor;
}

declare let l: d3.LABColor | null;
declare let c: d3.Color;
declare let nil: null;

if (l instanceof d3.color) {
  // Succeeds with l: d3.LABColor
  c = l;
} else {
  // Succeeds with l: null
  nil = l;
}

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ prototype рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ instanceof рдкрд░реАрдХреНрд╖рдг рджреЛрдиреЛрдВ рдХреЗ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ:

  interface ColorConstructor {
    (specifier: string): RGBColor | HSLColor;
    new(specifier: string): RGBColor | HSLColor;

    readonly prototype: Color; 
  }

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдореЗрдВ рджреЗрд░реА рдХреЗ рд▓рд┐рдПред prototype рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рджрд┐рди рдореЗрдВ рд╡рд╛рдкрд╕, instanceof рдХреЛ рднреА рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЖрд╡реЗрдЧ рдерд╛ред рдпрд╣ рд╕рд┐рд░реНрдл "рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛" рд╣реИрдХреА, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЕрднреНрдпрд╛рд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ new() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдирд┐рд░рдВрддрд░рддрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ D3v3 рдореЗрдВ рд╣реИ ... рдЪрд▓реЛ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

@tomwanzek рдХреНрдпрд╛ рдЖрдк рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП strictNullChecks strictFunctionTypes рдФрд░ TS 2.3 рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП d3-axis , d3-color , d3-dispatch , d3-format , d3-polygon рдФрд░ d3-hsv ред

рд╕рд╛рде рд╣реА d3-dispatch , d3-polygon рдФрд░ d3-hsv $ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо JSDoc рдореЗрдВ рдПрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж

d3-geo рдЗрдВрдЯрд░рдлрд╝реЗрд╕ GeoIdentityTranform рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИред рдпрд╣ GeoIdentityTransform ( s рдХреЗ рд╕рд╛рде) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪрд┐рдВрддрд╛?

@denisname d3-geo s GeoIdentityTranform рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЧрд▓рдд рд╡рд░реНрддрдиреА рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ (рд╢рд╛рдирджрд╛рд░ рдкрдХрдбрд╝!) ( geoIdentity() рдХреЗ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕рд╣рд┐рдд)
  • рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗрдВ
/**
 * <strong i="13">@deprecated</strong> Misspelled name. Use GeoIdentityTransform.
 */
export type GeoIdentityTranform = GeoIdentityTransform;
  • рдмрд╛рдж рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрд░рдг рдореЗрдВ рдЧрд▓рдд рд╡рд░реНрддрдиреА рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред

@denisname @gustavderdrache @ledragon рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рдореЗрдВ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! 'рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реБрдВрджрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдореБрд╕реНрдХрд╛рди:

'рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реБрдВрджрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдмрд┐рд▓реНрдХреБрд▓! рдмреЗрд╣рддрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдХреЗрд╡рд▓ рдПрдХ рд╕реБрдЦрдж рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рддрдХрдиреАрдХреА рдЛрдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЬрдмрдХрд┐ d3-рд╕рд░рдгреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИред рдореИрдВ strictFunctionTypes рдХреЛ d3-transition рдореЗрдВ d3-selection рдХреЗ рд╕рд╛рде рд╕рдорддрд╛ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдкрдЯреВрдВрдЧрд╛ред рдмрд╕ #25805 рдХреЗ рд╡рд┐рд▓рдп рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред

рдПрдЯреАрдПрдо рдирд╣реАрдВред рдЖрдк рд╕рднреА рдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдореИрдВ рдХрдм рдФрд░ рдХрдм рдХрд░реВрдВрдЧрд╛

5.2.0 рд╡реИрд╢реНрд╡рд┐рдХ рдмрдВрдбрд▓ рдкрд░ рдореБрд╣рд░ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП #25582 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛

рдореЗрд░реЗ рдкрд╛рд╕ d3-hierarchy рддреИрдпрд╛рд░ (рд╕рдЦреНрдд рдФрд░ jsDoc) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрдбреЗрдЯ рд╣реИред
d3-dsv рдФрд░ d3-fetch (ts 2.3) рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@denisname @tomwanzek @gustavderdrache
рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ d3 рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЕрдм рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрдХреЗрдЬ рдкрд░ 5 рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рдкреАрдЫреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рднреА рдЙрдк-рдкреИрдХреЗрдЬ 5.2.0 рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рдореИрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрдХреЗрдЬ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛?

@ рд▓реЗрдбреНрд░реИрдЧрди рдореИрдВ рдЖрдЬ рд░рд╛рдд рдЦреБрд▓реЗ рдкреАрдЖрд░рдПрд╕ рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝ рд▓реВрдВрдЧрд╛ рдФрд░ рдореБрджреНрд░рд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреА 3 рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдЕрдВрддрд░рд╛рд▓ рд╣реИ, рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдордореВрд▓реНрдп рдкрд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдмрдирд╛рдКрдВрдЧрд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рддрдХрдиреАрдХреА рдЛрдг рдХрдЯреМрддреА рдкрд░ рдореБрджреНрд░рд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЕрдм рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП D3.js рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реВрдВ .. рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрдирд▓рд╛рдЗрди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ D3 рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛?

/** <strong i="6">@type</strong> {SyncBailHook<Compilation>} */
shouldEmit: new SyncBailHook(["compilation"]),

рд╡реЗрдмрдкреИрдХ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдХреЗ рдареАрдХ рдмрдЧрд▓ рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред
https://github.com/webpack/webpack/blob/master/lib/Compiler.js#L51

рд╣рд╛рдп @ рдлрд┐рд▓-рдПрд▓рдЬреАрдЖрд░
d3 рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдкрд░ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реБрдИ рдереА, рдФрд░ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ (рдпрд╛рдиреА рдорд╛рдЗрдХ рдмреЛрд╕реНрдЯреЙрдХ рдиреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд┐рдпрд╛)ред рдореБрдЭреЗ рдзрд╛рдЧреЗ рдХрд╛ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдлрд┐рд░ рд╕реЗ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ

@tomwanzek рдХреНрдпрд╛ рдЖрдк рдЯреНрд░реИрдХрд┐рдВрдЧ рдЯреЗрдмрд▓ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП strictNullChecks strictFunctionTypes рдФрд░ TS 2.3 рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП d3-array , d3-array , d3-dsv , d3-fetch , d3-hexbin , d3-hierarchy , d3-interpolate , d3-quadtree , d3-queue , d3-request , d3-timer рдФрд░ d3-voronoi ред

рд╕рд╛рде рд╣реА рдХреЙрд▓рдо JSDoc рдореЗрдВ d3-color , d3-hexbin , d3-hierarchy , d3-interpolate рдФрд░ d3-quadtree рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж

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

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

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

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

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

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

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