Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΡΡΠΈΠ»ΠΊΠ°
15.03
π©βπ» ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π² Typescript
TypeScript ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ (&
) ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (|
). ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ
ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² &
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΠΎΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ: `interface Person { name: string; }
interface Employee { id: number; }
type PersonEmployee = Person & Employee;
const personEmployee: PersonEmployee = { name: 'ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²', id: 12345, };
ΠΠ΄Π΅ΡΡ PersonEmployee β ΡΡΠΎ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°: name ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Person ΠΈ id ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Employee.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² |
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ: `type StringOrNumber = string | number;
let value: StringOrNumber; value = 'ΠΡΠΈΠ²Π΅Ρ'; // OK value = 42; // OK value = true; // ΠΡΠΈΠ±ΠΊΠ°! Π’ΠΈΠΏ boolean Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² StringOrNumber
ΠΠ΄Π΅ΡΡ StringOrNumber β ΡΡΠΎ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΡΡΡΠΎΠΊΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΠΈΡΠ»ΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅:
function printValue(value: string | number) {
console.log(
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅: ${value}`);
}
printValue('Π‘ΡΡΠΎΠΊΠ°'); // ΠΡΠ²ΠΎΠ΄ΠΈΡ: ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅: Π‘ΡΡΠΎΠΊΠ° printValue(100); // ΠΡΠ²ΠΎΠ΄ΠΈΡ: ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅: 100
ΠΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π²ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π² ΠΎΠ΄Π½Ρ, ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
`interface UserData { username: string; email: string; }
interface AdditionalInfo { age: number; city: string; }
type FullUserProfile = UserData & AdditionalInfo;
const user: FullUserProfile = { username: 'alice', email: '[email protected]', age: 30, city: 'ΠΠΎΡΠΊΠ²Π°' };````
Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅
Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΡΡΠΈΠ»ΠΊΠ°
15.03
Π²ΠΎΠΉΠ΄ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ
ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠΈ