πŸ”₯πŸ”₯ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии Typescript

TypeScript — это язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft. Он являСтся строгим синтаксичСским надмноТСством JavaScript ΠΈ добавляСт Π² язык Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ.

Typescript анонсировал свою Π±Π΅Ρ‚Π°-Π²Π΅Ρ€ΡΠΈΡŽ 4.3 1 апрСля 2021 Π³ΠΎΠ΄Π°, для установки этой вСрсии Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅

npm install typescript@beta

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… строк
Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ для ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, благодаря Ρ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° шаблонного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° typescript Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ позволяСт исходному Ρ‚ΠΈΠΏΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ присваивания:

type Color = "red" | "blue";
type Quantity = "one" | "two";

type SeussFish = `${Quantity | Color} fish`;
// same as
//  type SeussFish = "one fish" | "two fish"
//         | "red fish" | "blue fish";
…or match patterns of other string-like types.

declare let s1: `${number}-${number}-${number}`;
declare let s2: `1-2-3`;

// Works!
s1 = s2;
Π’Ρ…ΠΎΠ΄ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌ Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

ВсСгда ΠΏΡ€Π°Π²Π΄ΠΈΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠΉ
Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выброса ошибки ΠΏΡ€ΠΈ отсутствии await Π² условиях

статичСскиС индСксныС подписи
Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ подписи ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Ρ‚ΡŒ большС свойств для значСния, Ρ‡Π΅ΠΌ явно объявлСно Π² Ρ‚ΠΈΠΏΠ΅. Π’ послСднСй вСрсии индСксныС подписи Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ статичСскиС.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΏΡƒΡ‚ΠΈ, typescript прСдоставит Π΅ΠΌΡƒ список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ². Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ зафиксируСт Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ собирался Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ автоматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π² послСднСй вСрсии typescript

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅Π³ΠΎΠ² @link
TypeScript Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅Π³ΠΈ @link ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ объявлСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС навСсти курсор Π½Π° ΠΈΠΌΠ΅Π½Π° Π² Ρ‚Π΅Π³Π°Ρ… @link ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ go-to-definition ΠΈΠ»ΠΈ find-all-references.

НапримСр, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ Π²Ρ‹ смоТСтС ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ bar Π² @link bar, ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ TypeScript ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ объявлСнию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ bar.

/**
 * This function depends on {@link bar}
 */
function foo() {

}

function bar() {

}

Π’Ρ…ΠΎΠ΄ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ пСрСчислСния нСльзя ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ числами
Π Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ вопрос ΠΎ НСкоторыС пСрСчислСния ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ пСрСчислСниями союза, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… Ρ‡Π»Π΅Π½Ρ‹ Π»ΠΈΠ±ΠΎ автоматичСски Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Π»ΠΈΠ±ΠΎ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ записаны. Π’ этих случаях пСрСчислСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ прСдставляСт.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии, Ссли пСрСмСнная с Ρ‚ΠΈΠΏΠΎΠΌ union enum сравниваСтся с числовым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Π°, Ρ‚ΠΎ срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

enum E {
 A = 0,
 B = 1,
}

function doSomething(x: E) {
 // Error! This condition will always return 'false' since the types 'E' and '-1' have no overlap.
 if (x === -1) {
  // ...
 }
}

//As a workaround, you can re-write an annotation to include the appropriate literal type.

// Include -1 in the type, if we're really certain that -1 can come through.
function doSomething(x: E | -1) {
 if (x === -1) {
  // ...
 }
}


//You can also use a type-assertion on the value.
function doSomething(x: E) {
 // Use a type asertion on 'x' because we know we're not actually just dealing with values from 'E'.
 if ((x as number) === -1) {
  // ...
 }
}
Π’Ρ…ΠΎΠ΄ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вашС пСрСчислСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π»ΠΎ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ любоС число ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с этим пСрСчислСниСм. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли пСрСчислСниС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для опрСдСлСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… извСстных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

enum E {
 // the leading + on 0 opts TypeScript out of inferring a union enum.
 A = +0,
 B = 1,
}
Π’Ρ…ΠΎΠ΄ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ сюда.

Бчастливого ΠΊΠΎΠ΄ΠΈΠ½Π³Π°!

Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ здСсь:- ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии Typescript

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ
devanswers.ru
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ