Skip to content
50 / 58

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ HKT (Higher-Kinded Types) эмуляция Π² TypeScript?

Higher-Kinded Types (HKT) β€” это Ρ‚ΠΈΠΏΡ‹, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ-конструкторами (Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ). TypeScript Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚: нСльзя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ type Apply<F, A> = F<A>. Но ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HKT Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы с placeholder-ΠΏΠΎΠ»Π΅ΠΌ ΠΈ Ρ‚Ρ€ΡŽΠΊ с declaration merging ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ type-class dictionary. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для абстракций Π²Ρ€ΠΎΠ΄Π΅ Functor, Monad, Traversable.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ HKT (Higher-Kinded Types) эмуляция Π² TypeScript? | JScriptiser