Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
❔Interfaces or Types?
#javanoscript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
2. Extension/Inheritance:
3. Declaration Merging (Interface-only feature):
4. Union Types (Type-only feature):
5. Computed Properties:
General recommendations:
- Use
- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
#javanoscript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
// Interface
interface User {
name: string;
age: number;
}
// Type
type User = {
name: string;
age: number;
}
2. Extension/Inheritance:
// Interface extends interface
interface Animal {
name: string;
}
interface Dog extends Animal {
bark(): void;
}
// Type extends type (using intersection)
type Animal = {
name: string;
}
type Dog = Animal & {
bark(): void;
}
3. Declaration Merging (Interface-only feature):
// Interfaces can be defined multiple times and will merge
interface User {
name: string;
}
interface User {
age: number;
}
// Result: User has both name and age
// Types cannot be reopened
type User = { name: string }
// Error: Cannot redeclare type User
type User = { age: number }
4. Union Types (Type-only feature):
// Only possible with type
type Status = "pending" | "approved" | "rejected";
// Can't do this with interface
type StringOrNumber = string | number;
5. Computed Properties:
// Works with type
type Keys = "firstname" | "lastname";
type DudeType = {
[key in Keys]: string;
}
// Doesn't work with interface
interface DudeInterface {
[key in Keys]: string; // Error
}
General recommendations:
- Use
interface when:- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
type when:- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
type because it's more flexible, but both are valid choices. The TypeScript team originally recommended interfaces, but types have become equally well-supported.Forwarded from LearnPOV | لرن پی او وی
رفقا یه هل بدید 1k رو زدیما ؛)❤️
اگر مطالب کانال رو دوستدارید میتونید برای دوستا و رفقای برنامه نویستون بفرستید که اونا هم جوین بدن و استفاده کنن.
📊 دسته بندی مطالب
اگر مطالب کانال رو دوستدارید میتونید برای دوستا و رفقای برنامه نویستون بفرستید که اونا هم جوین بدن و استفاده کنن.
📊 دسته بندی مطالب
Forwarded from Linuxor ?
یه موتور جاوااسکریپتی برای ساخت بازی های turn-based مولتی پلیر، حالت دار و ربات های بر پایه AI
خیلی راحت میشه یادش گرفت داکیومنش خوبی داره
https://github.com/boardgameio/boardgame.io
@Linuxor ~ tom_doerr
خیلی راحت میشه یادش گرفت داکیومنش خوبی داره
https://github.com/boardgameio/boardgame.io
@Linuxor ~ tom_doerr
Forwarded from Ninja Learn | نینجا لرن
Forwarded from Linuxor ?
داخل این سایت میتونید استپ به استپ ببینید الگوریتم Sha256 چجوری هش میکنه
sha256algorithm.com
@Linuxor ~ Taqiam_
sha256algorithm.com
@Linuxor ~ Taqiam_
Forwarded from mnr tech
محیط کار دستکتاپ ما یکی از مهمترین چیز هایی هست که ما روزانه باهاشون سر و کار داریم.
همیشه ابزار هایی هستند که کار با دستکتاپ رو برای ما ساده میکنن. و سرعت ما رو بیشتر میکنن.
یکی از این دسته برنامه ها keyboard launcher هست که به اون app launcher یا حتی run launcher هم میگن.
اساس کار این برنامه ها به این شکل هست که با زدن یک شورت کات یک اینپوت ساده باز میشه و شما میتونید چیزی که میخواین رو توی اون تایپ کنید. ساده ترین حالتش اینه که اسم یک برنامه رو جستجو کنید و راحت توی لیست پیدا کنید و بازش کنید. اما قابلیت های پیشرفته تری هم داره مثلا این که توی vscode یه ریپازیتوری خاصی رو باز کنید. یا کلی امکانات پایه مثل محاسبات ریاضی، ابزار های تبدیل و .... باید با این ابزار کار کنید تا ببینید چقدر مفیده.
⚡️ معرفی ابزار ها:
❤️ spotlight (مک)
اگر از مک استفاده میکنید ابزاری هست به اسم spotlight که این کار رو برای شما انجام میده و امکانات فوق العاده ای داره حتما باید امتحانش کنید.
😥 power toys | windows run (ویندوز)
توی ویندوز اگر power toys رو نصب کنید که امکانات زیادی داره یکی از امکاناتش windows run هست که دقیقا این کار رو براتون انجام میده و امکانات زیادی داره.
😴 albert launcher (مک و لینوکس)
این یه ابزار اپن سورس هست و امکانات زیادی بهتون میده اگر از لینوکس استفاده میکنید میتونید از این لانچر استفاده کنید.
https://albertlauncher.github.io/
😴 Ulauncher (لینوکس)
یک لانچر زیبا و قوی دیگه برای لینوکس که ظاهر و امکانات خوبی داره
https://ulauncher.io/
😴 cerebro-app (لینوکس، مک و ویندوز)
آخرین مورد هم cerebro-app هست که توی همه سیستم عامل ها قابل استفاده هست.
https://www.cerebroapp.com/
من راجع به هر کدوم اینها به طور جدا صحبت نکردم چون کارایی همشون مثل هم هست. 3 مورد آخر امکان اضافه کردن ماژول یا اکسنشن برای قابلیت های بیشتر رو دارن و همچنین مورد آخر امکان شخصی سازی زیادی داره.
پیشنهاد میکنم اگر تا حالا از این لانچر ها استفاده نکردین حتما امتحانش کنید
من خودم روی لینوکس ulaucher و albert رو تست کردم و ulaucher به نظرم خیلی بهتر بود هم از نظر ظاهری و هم اینکه اکستنشن های زیادی داره که میشه اضافه کرد. در مورد cerebro گیتهابش رو چک کردم آخرین فعالیت برای ۲ سال پیش بوده پس به نظرم برای لینوکس بهترین آپشن ulauncher هست
همیشه ابزار هایی هستند که کار با دستکتاپ رو برای ما ساده میکنن. و سرعت ما رو بیشتر میکنن.
یکی از این دسته برنامه ها keyboard launcher هست که به اون app launcher یا حتی run launcher هم میگن.
اساس کار این برنامه ها به این شکل هست که با زدن یک شورت کات یک اینپوت ساده باز میشه و شما میتونید چیزی که میخواین رو توی اون تایپ کنید. ساده ترین حالتش اینه که اسم یک برنامه رو جستجو کنید و راحت توی لیست پیدا کنید و بازش کنید. اما قابلیت های پیشرفته تری هم داره مثلا این که توی vscode یه ریپازیتوری خاصی رو باز کنید. یا کلی امکانات پایه مثل محاسبات ریاضی، ابزار های تبدیل و .... باید با این ابزار کار کنید تا ببینید چقدر مفیده.
اگر از مک استفاده میکنید ابزاری هست به اسم spotlight که این کار رو برای شما انجام میده و امکانات فوق العاده ای داره حتما باید امتحانش کنید.
توی ویندوز اگر power toys رو نصب کنید که امکانات زیادی داره یکی از امکاناتش windows run هست که دقیقا این کار رو براتون انجام میده و امکانات زیادی داره.
این یه ابزار اپن سورس هست و امکانات زیادی بهتون میده اگر از لینوکس استفاده میکنید میتونید از این لانچر استفاده کنید.
https://albertlauncher.github.io/
یک لانچر زیبا و قوی دیگه برای لینوکس که ظاهر و امکانات خوبی داره
https://ulauncher.io/
آخرین مورد هم cerebro-app هست که توی همه سیستم عامل ها قابل استفاده هست.
https://www.cerebroapp.com/
من راجع به هر کدوم اینها به طور جدا صحبت نکردم چون کارایی همشون مثل هم هست. 3 مورد آخر امکان اضافه کردن ماژول یا اکسنشن برای قابلیت های بیشتر رو دارن و همچنین مورد آخر امکان شخصی سازی زیادی داره.
پیشنهاد میکنم اگر تا حالا از این لانچر ها استفاده نکردین حتما امتحانش کنید
من خودم روی لینوکس ulaucher و albert رو تست کردم و ulaucher به نظرم خیلی بهتر بود هم از نظر ظاهری و هم اینکه اکستنشن های زیادی داره که میشه اضافه کرد. در مورد cerebro گیتهابش رو چک کردم آخرین فعالیت برای ۲ سال پیش بوده پس به نظرم برای لینوکس بهترین آپشن ulauncher هست
Please open Telegram to view this post
VIEW IN TELEGRAM
Albert
Home
Albert is a unified and efficient access to your machine. Technically it is a keyboard launcher written in C++/Qt. The plugin based architecture makes it extremely flexible and powerful. Plugins can be used to create frontends or functional extensions. Extensions…
Forwarded from ASafaeirad
اینو امروز دیدم یه چیز جالبی دربارش میتونم بگم.
این صفحه رو بعد از پرداخت به زبان Dutch دیدم و فکر کردم پرداخت موفقیت آمیز نبود. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش.
این اتفاقی که برای من افتاد یک روش تست رابط کاربریه تجربه کاربری که ما انجام میدیم.
به روش های مختلفی میشه توضیحش داد ولی من با مفهومی به اسم Self-evident design از Steve Krug میگم.
خیلی ساده یعنی توی یک رابط کاربری خوب کاربر باید بتونه بدون فکر کردن در کمترین زمان تشخیص بده چی به چیه.
برای بهبودش ما از Visual hierarchy، رنگ ها و علائم language agnostic هست.
مثل علامت تعجبی که اونجا گذاشته که توی اکثر فرهنگ ها به معنی خطر بکار میره
یا رنگ نارجی که بخاطر برند هست اما توسط رنگ دیگه ای خنثی نشده.
درنهایت برای اینکه این خاصیت رابط کاربری رو بسنجیم از تکنیکی به اسم Blur test استفاده میکنیم
یعنی رابط کاربری رو برای استفاده کننده گنگ میکنیم و ازش میخوایم باهاش کار کنه.
یکی از روش های این تست عوض کردن زبان رابط کاربری به زبانیه که کاربر بلد نیست. که متاسفانه Ziggo تو این تست نمره خوبی نمیگیره.
#ux #article
این صفحه رو بعد از پرداخت به زبان Dutch دیدم و فکر کردم پرداخت موفقیت آمیز نبود. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش.
این اتفاقی که برای من افتاد یک روش تست رابط کاربریه تجربه کاربری که ما انجام میدیم.
به روش های مختلفی میشه توضیحش داد ولی من با مفهومی به اسم Self-evident design از Steve Krug میگم.
خیلی ساده یعنی توی یک رابط کاربری خوب کاربر باید بتونه بدون فکر کردن در کمترین زمان تشخیص بده چی به چیه.
برای بهبودش ما از Visual hierarchy، رنگ ها و علائم language agnostic هست.
مثل علامت تعجبی که اونجا گذاشته که توی اکثر فرهنگ ها به معنی خطر بکار میره
یا رنگ نارجی که بخاطر برند هست اما توسط رنگ دیگه ای خنثی نشده.
درنهایت برای اینکه این خاصیت رابط کاربری رو بسنجیم از تکنیکی به اسم Blur test استفاده میکنیم
یعنی رابط کاربری رو برای استفاده کننده گنگ میکنیم و ازش میخوایم باهاش کار کنه.
یکی از روش های این تست عوض کردن زبان رابط کاربری به زبانیه که کاربر بلد نیست. که متاسفانه Ziggo تو این تست نمره خوبی نمیگیره.
#ux #article
Forwarded from Yasha
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ASafaeirad
X (formerly Twitter)
Alireza Safaierad (@ASafaeirad) on X
#رشتو
امروز تو مرحله آخر پرداخت به این صفحه از Ziggo برخوردم و میخوام دربارش صحبت کنم. (عکس ضمیمه)
برداشت اولیه من از این صفحه به زبان Dutch این بود که پرداخت موفقیت آمیز نبوده. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش!
🧵 ۱/۷…
امروز تو مرحله آخر پرداخت به این صفحه از Ziggo برخوردم و میخوام دربارش صحبت کنم. (عکس ضمیمه)
برداشت اولیه من از این صفحه به زبان Dutch این بود که پرداخت موفقیت آمیز نبوده. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش!
🧵 ۱/۷…
Forwarded from Codino School (ایمان غفوری)
Forwarded from Ninja Learn | نینجا لرن
Forwarded from Ninja Learn | نینجا لرن
میخوام یه سوال ازتون بپرسم، بدون اینکه جوابشو سرچ کنید بگید چرا.
اگه برید یه حلقه for بزنید که ۱۰۰,۰۰۰ بار یه متن رو پرینت کنه (یه بار توی golang یه بارم توی python)
و تست سرعت بگیرید.
میبینید پایتون ۱۰ الا ۱۷ ثانیه اجراش میکنع
گولنگ ۵۰ ثانیه الا ۱ دقیقه
بنظرتون دلیلش چیه؟ چرا بااینکه go کامپایلریه و خیلی سریعه انقدر کند تره نسبت به پایتون توی این مورد؟ 🤔
اگه برید یه حلقه for بزنید که ۱۰۰,۰۰۰ بار یه متن رو پرینت کنه (یه بار توی golang یه بارم توی python)
و تست سرعت بگیرید.
میبینید پایتون ۱۰ الا ۱۷ ثانیه اجراش میکنع
گولنگ ۵۰ ثانیه الا ۱ دقیقه
بنظرتون دلیلش چیه؟ چرا بااینکه go کامپایلریه و خیلی سریعه انقدر کند تره نسبت به پایتون توی این مورد؟ 🤔
#question
🔆 CHANNEL | GROUP
Forwarded from Laravel News
Using AI to Manage Translations in Laravel https://laravel-news.com/using-ai-to-manage-translations-in-laravel
Laravel News
Using AI to Manage Translations in Laravel - Laravel News
The Laravel community offers a growing number of packages that use AI models like OpenAI's GPT and Anthropic's Claude to simplify and enhance application localization, making it faster and more efficient to create multilingual applications.
I Love You Baby
Frank Sinatra
یه روز یکی این رو برام فرستاد و بهم گفت که این آهنگ، باعث میشه یاد من بیوفته.
زیزیگولو، دوستت دارم. 💖
#music
@amiria703_channel
You're just too good to be true
Can't take my eyes off of you
You'd be like heaven to touch
I wanna hold you so much
زیزیگولو، دوستت دارم. 💖
#music
@amiria703_channel