π’ ΠΠ±ΡΠ΅Π΅
ΠΠ±Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠΎΡΠ·ΠΎΠ², ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅:
type User = {
name: string;
age: number;
};
interface IUser {
name: string;
age: number;
}
β Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅
interface Animal {
name: string;
}
interface Dog extends Animal {
bark(): void;
}
// type
type AnimalType = {
name: string;
};
type DogType = AnimalType & {
bark(): void;
};
β ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ interface)
Π’Π°ΠΊΠΎΠ΅ Π½Π΅Π»ΡΠ·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Ρ type, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Duplicate identifier.
interface User {
name: string;
}
interface User {
age: number;
}
// ΠΡΠΎΠ³:
const user: User = {
name: "Tom",
age: 30,
};
β ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (ΡΠΎΠ»ΡΠΊΠΎ type)
type Status = "success" | "error"; // union
type Point = [number, number]; // tuple
π§ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
β’ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ interface, Π΅ΡΠ»ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°.
β’ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ type, Π΅ΡΠ»ΠΈ:
- Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (|)
- Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ (&)
- ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ

Anastasiia Berest
Senior Web UI Engineer