Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΡΡΠΈΠ»ΠΊΠ°
09.03
π©βπ» Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π² typescript ΠΠΎΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΏΠ°Π»ΡΡ ΠΌΠ½Π΅ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅ ΠΈ ΠΌΠ½Π΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΡΠΊΡΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡΡ .
1. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° interface ΠΈ type.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² ts: `interface User { name: string; age: number; }
Π’ΠΈΠΏΡ Π² ts: `type User = { name: string; age: number; };
2. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° extends
`interface Person { name: string; }
interface User extends Person { age: number; }
Π’ΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² & (ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅).
`type Person = { name: string; };
type User = Person & { age: number; };
3. ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (|) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (&) Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
Π’ΠΈΠΏΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
`type A = { a: string }; type B = { b: number }; type C = A | B; // ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ type D = A & B; // ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
4. ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ.
`interface User { name: string; }
interface User { age: number; }
const user: User = { name: "John", age: 30, };
Π’ΠΈΠΏΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
5. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ². Π’ΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ
6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° implements.
`interface Person { name: string; greet(): void; }
class User implements Person {
name: string;
constructor(name: string) {
this.name = name;
}
greet() {
console.log(Hello, ${this.name}
);
}
}
Π’ΠΈΠΏΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ.```````
Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅
Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΡΡΠΈΠ»ΠΊΠ°
09.03
Π²ΠΎΠΉΠ΄ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ
ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠΈ