Skip to content
33 / 58

Как TypeScript ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ structural typing vs nominal typing?

TypeScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ (structural typing): Π΄Π²Π° Ρ‚ΠΈΠΏΠ° совмСстимы, Ссли Ρƒ Π½ΠΈΡ… одинаковая структура (Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²), Π° Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ имя. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Java/C#, Π³Π΄Π΅ class Dog ΠΈ class Cat с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ полями -- Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (номинальная типизация), Π² TypeScript ΠΎΠ½ΠΈ взаимозамСняСмы. Для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ Π½ΠΎΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ branded types.

Как TypeScript ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ structural typing vs nominal typing? | JScriptiser