همه چیز را در مورد ویژگی هایی که این آخرین نسخه TypeScript معرفی می کند، بیابید.
TypeScript، زبان برنامه نویسی محبوب مایکروسافت، همچنان با آخرین نسخه خود، TypeScript 5.1 تحت تاثیر قرار می دهد. این نسخه با ویژگیها و پیشرفتهای هیجانانگیز جدید، وعده میدهد تا تجربه کدنویسی شما را به ارتفاعات جدیدی برساند.
برگرداندن تابع ساده شده و انواع لوازم جانبی
در جاوا اسکریپت، زمانی که یک تابع ایجاد می کنید و بدون مواجهه با دستور بازگشت اجرا می کنید، به طور خودکار مقدار تعریف نشده را برمی گرداند.
TypeScript 5.1 ویژگی جدیدی را معرفی کرده است که به توابع بازگردانده نشده اجازه می دهد تا دستور بازگشت را به طور کلی حذف کنند. این بهبود خوانایی و مختصر کد را بهبود می بخشد.
function logMessage(message: string): undefined {
console.log(message);
// No return statement needed here
}
این مثال از تابع logMessage برای نمایش یک پیام در کنسول استفاده می کند. با این حال، تابع به صراحت هیچ مقداری را بر نمی گرداند.
انواع نامرتبط برای گترها و ستترها
TypeScript 5.1 ویژگی جدیدی را معرفی میکند که استفاده از انواع نامرتبط را برای دریافتکنندهها و تنظیمکنندهها مجاز میسازد، البته تا زمانی که حاشیهنویسی نوع صریح ارائه کنید.
ثابت میکند که این بهبود در موقعیتهایی که نیاز به اعمال انواع متمایز برای دسترسی و اصلاح یک ویژگی دارید، بسیار سودمند است.
class User {
private _name: string | null = null;
set name(newName: string) {
this._name = newName;
}
get name(): string {
return this._name ?? 'Unknown';
}
}
در این مثال، کلاس User دارای یک ویژگی private _name است که می تواند رشته یا null باشد. تنظیم کننده نام یک رشته newName را می گیرد و آن را به _name اختصاص می دهد. نام گیرنده مقدار _name را اگر تهی نباشد، یا نامشخص اگر باشد، برمیگرداند.
این به شما امکان میدهد مشخص کنید که ویژگی name فقط میتواند با یک رشته تنظیم شود، اما هنگام دریافت ویژگی name، میتواند یک رشته یا Unknown باشد، اگر هنوز تنظیم نشده باشد.
این ویژگی تعاریف نوع منعطف تر و گویاتری را همانطور که در مثال زیر نشان داده شده است، فعال می کند.
interface CSSStyleRule {
// Always reads as a `CSSStyleDeclaration`
get style(): CSSStyleDeclaration;
// Can only write a `string` here.
set style(newValue: string);
}
در مثال بالا، ویژگی style دارای یک گیرنده است که یک CSSStyleDeclaration را برمی گرداند و یک تنظیم کننده که یک رشته را می پذیرد. این انواع نامرتبط هستند، اما TypeScript 5.1 این نوع تعریف را امکان پذیر می کند.
بهبودهای JSX
TypeScript 5.1 چندین پیشرفت را برای JSX معرفی می کند. اکنون امکان بررسی نوع جداشده بین عناصر JSX و انواع تگ JSX را فراهم میکند، که میتواند برای کتابخانههایی مانند redux مفید باشد که به اجزا اجازه میدهد بیشتر از عناصر JSX را برگردانند.
import * as React from "react";
async function AsyncComponent() {
return <div>Loaded</div>;
}
// This is now allowed:
let element = <AsyncComponent />;
در این مثال، تابع AsyncComponent یک تابع ناهمزمان است که یک عنصر JSX را برمی گرداند. TypeScript 5.1 به شما امکان می دهد از این نوع عملکرد به عنوان یک جزء JSX استفاده کنید، که در نسخه های قبلی امکان پذیر نبود.
TypeScript 5.1 همچنین از JSX Transform جدید معرفی شده در React 17 پشتیبانی می کند. این به شما امکان می دهد بدون وارد کردن React از JSX استفاده کنید.
// Before
import React from "react";
function Component() {
return <h1>Hello, world!</h1>;
}
// After
function Component() {
return <h1>Hello, world!</h1>;
}
در مثال بالا، تابع Component یک عنصر JSX را برمی گرداند. در TypeScript 5.1 و React 17، دیگر نیازی به وارد کردن React برای استفاده از JSX ندارید.
افزایش عملکرد و تغییرات قابل توجه در TypeScript 5.1
TypeScript 5.1 چندین بهینه سازی را برای بهبود عملکرد معرفی می کند، از جمله بهینه سازی سرعت، حافظه و اندازه بسته، اجتناب از نمونه سازی غیرضروری نوع، بررسی موارد منفی برای کلمات اتحادیه و کاهش تماس ها به اسکنر برای تجزیه JSDoc.
در اینجا نمونهای از اجتناب از نمونهسازی غیرضروری نوع در انواع شی که مشخص است حاوی ارجاع به پارامترهای نوع بیرونی نیستند و بررسی سریعتر برای لفظ اتحاد وجود دارد.
type Union = 'a' | 'b' | 'c';
function check(value: Union) {
// ...
}
در این مثال، TypeScript 5.1 میتواند به سرعت بررسی کند که آیا یک مقدار بخشی از نوع Union است، بدون اینکه نیازی به بررسی در برابر هر نوع اتحادیه باشد.
این هم یک مثال دیگر:
type Point = { x: number, y: number };
function translate(point: Point, dx: number, dy: number): Point {
return { x: point.x + dx, y: point.y + dy };
}
let p: Point = { x: 1, y: 2 };
p = translate(p, 1, 1);
در این مثال، نوع Point یک نوع شی است که حاوی هیچ پارامتر نوع نیست. وقتی تابع translate را فراخوانی میکند، TypeScript 5.1 میتواند از نمونهسازی غیرضروری نوع اجتناب کند، که میتواند به طور قابل توجهی سرعت بررسی نوع را افزایش دهد.
پذیرش TypeScript 5.1
TypeScript 5.1 مجموعه ای از ویژگی ها و بهینه سازی های قدرتمند را معرفی می کند که توسعه جاوا اسکریپت را متحول می کند. از بازگشت عملکرد ساده گرفته تا بهبودهای JSX و افزایش عملکرد، TypeScript 5.1 به شما این امکان را می دهد که کدهای تمیزتر و گویاتر بنویسید و در عین حال بررسی نوع و عملکرد کلی را بهبود می بخشد.
با پذیرش TypeScript 5.1، می توانید قفل امکانات جدید را باز کنید و پروژه های جاوا اسکریپت خود را به ارتفاعات جدیدی از کارایی و نوآوری ارتقا دهید. اجازه دهید تایپ اسکریپت 5.1 دروازه شما برای تجربه توسعه پیشرفته تر و کارآمدتر جاوا اسکریپت باشد.