Skip to content
8 / 58

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ discriminated union (Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ объСдинСниС)?

Discriminated union (Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ объСдинСниС) β€” это union Ρ‚ΠΈΠΏ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ содСрТит ΠΎΠ±Ρ‰Π΅Π΅ свойство-дискриминант с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. TypeScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это свойство для суТСния Ρ‚ΠΈΠΏΠ° (narrowing): ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дискриминанта, компилятор Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ, ΠΈ Π΄Π°Ρ‘Ρ‚ доступ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ полям. Π­Ρ‚ΠΎ основа ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° «бСзопасного модСлирования состояний».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ discriminated union (Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ объСдинСниС)? | JScriptiser