JavaScript хэлэнд төрлийн мэдээлэл бүхий синтакс нэмэхийг санал болгож байна

Microsoft, Igalia, Bloomberg нар TypeScript хэлэнд ашигладаг синтакстай адил тодорхой төрлийн тодорхойлолтод зориулсан синтаксийг JavaScript-ийн тодорхойлолтод оруулах санаачлага гаргасан. Одоогийн байдлаар ECMAScript стандартад оруулахаар санал болгож буй прототипийн өөрчлөлтийг урьдчилсан хэлэлцүүлэгт оруулж байна (0-р шат). Гуравдугаар сард болох TC39 хорооны дараагийн хурлаар ECMA-ийн шинжээчдийн нийгэмлэгийн оролцоотойгоор саналыг хэлэлцэх эхний шатанд шилжихээр төлөвлөж байна.

Төрөл бүрийн мэдээллийг тодорхой зааж өгсөн байх нь хөгжүүлэлтийн явцад олон алдаа гарахаас зайлсхийх, нэмэлт оновчлолын техник ашиглах, дибаг хийхийг хялбаршуулах, кодыг уншихад хялбар, гуравдагч талын хөгжүүлэгчид өөрчлөх, дэмжихэд хялбар болгоно. Төрлийн дэмжлэгийг нэмэлт функц болгон хэрэгжүүлэхийг санал болгож байна - Төрөл шалгахыг дэмждэггүй JavaScript хөдөлгүүрүүд болон ажиллах хугацаа нь төрлийн мэдээлэл бүхий тэмдэглэгээг үл тоомсорлож, кодыг өмнөх шигээ боловсруулж, төрлийн өгөгдлийг тайлбар болгон авч үзэх болно. Гэхдээ төрлийг шалгах хэрэгслүүд нь төрлийг буруу ашиглахтай холбоотой алдааг тодорхойлохын тулд байгаа мэдээллийг ашиглах боломжтой болно.

Түүнчлэн, тайлбар хэлбэрээр заасан JSDoc тэмдэглэгээг ашиглан тодорхойлсон төрлийн мэдээллээс ялгаатай нь хувьсагчийн тодорхойлолтын бүтэц дэх төрлийг шууд зааж өгөх нь кодыг илүү харагдахуйц, ойлгомжтой, засварлахад хялбар болгоно. Жишээлбэл, TypeScript-ийн дэмжлэгтэй IDE-ууд нэмэлт хөрвүүлэлтгүйгээр бичсэн JavaScript кодын алдааг нэн даруй тодруулах боломжтой болно. Нэмж дурдахад, суулгагдсан төрлийн дэмжлэг нь TypeScript, Flow зэрэг JavaScript хэлээр бичигдсэн програмуудыг нэг хэлээс нөгөө хэл рүү шилжүүлэхгүйгээр ажиллуулах боломжийг олгоно.

JavaScript хэлэнд төрлийн мэдээлэл бүхий синтакс нэмэхийг санал болгож байна

Төрлүүдийн дунд хувьсагч, функцийн параметр, объектын элемент, ангиллын талбар, бичсэн массивыг ("тоо[]") тодорхойлоход ашиглаж болох "мөр", "тоо" болон "бүлийн" нэмэхийг санал болгож байна. Түүнчлэн нэгтгэсэн төрөл ("мөр | тоо") болон ерөнхий зүйлд дэмжлэг үзүүлэхийг санал болгож байна. let x: мөр; функц нэмэх(a: тоо, b: тоо) { a + b буцаана; } интерфэйс Хүн {нэр: мөр; нас: тоо; } функц foo (x: T) { буцах x; } функц foo(x: string | тоо): мөр | тоо { хэрэв (х төрлийн === тоо) { буцах x + 1 } өөрөөр { буцах x + "!" } }

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх