60 / 67
ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Vue?
ΠΠΎΠΌΠ΅Π½Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° -- ΡΡΠΎ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠ»Π°ΡΡΡ Π½Π° TypeScript Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Vue. ΠΠ½ΠΈ ΠΆΠΈΠ²ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ domain/ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠ°Π²ΠΈΠ»Π°, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ, ΡΠ°ΡΡΡΡΡ. Vue-ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΡ
Π² composables.
TypeScript
// domain/pricing.ts -- ΡΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ
export function calculateDiscount(subtotal: number, userTier: string): number {
if (userTier === 'premium' && subtotal > 5000) return subtotal * 0.15
if (subtotal > 10000) return subtotal * 0.1
return 0
}