<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های پویا ابراهیمی</title>
        <link>https://virgool.io/feed/@p.ebrahimi163</link>
        <description>React developer</description>
        <language>fa</language>
        <pubDate>2026-06-16 13:24:50</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/592079/avatar/Pk2ka1.jpeg?height=120&amp;width=120</url>
            <title>پویا ابراهیمی</title>
            <link>https://virgool.io/@p.ebrahimi163</link>
        </image>

                    <item>
                <title>husky vs git hooks</title>
                <link>https://virgool.io/@p.ebrahimi163/husky-vs-git-hooks-cilkvlvuamam</link>
                <description>Git Hooks and HuskyGit HooksGit supports hooks, which are scripts that run at various stages (such as before a commit, after a push, etc.).The Git hooks directory is located at:.git/hooksCategorizedGit hooks are categorized into client-sideand server-side hooks, each triggered at different stages of Git operations. Here&#x27;s a list of all the available Git hooks:Client-Side HooksThese hooks run on the developer&#x27;s machine during operations like commits, merges, and checkouts.pre-commit:prepare-commit-msg:commit-msg:post-commit:pre-rebase:post-checkout:post-merge:pre-push:pre-applypatch:post-applypatch:pre-commit-msg (for interactive rebases):Server-Side HooksThese hooks run on the Git server, typically during a push operation or when interacting with remote repositories.pre-receive:update:post-receive:post-update:push-to-checkout:Commit Process in GitWhen the commit command is executed:git commit -m &amp;quottest&amp;quothook : Pre-commit hook : prepare-commit-msg -A file named .git/COMMIT_EDITMSGis created.The commit message is written into this file.Hook : commit-msghook : pre-applypatchcommit is completed.Hook : post-commitHook : post-applypatchNote: .git/COMMIT_EDITMSGis file is not removed after the commit.Relationship Between Husky and GitGit: A version control system that supports hooks.Husky: A tool for 	managing Git hooks more easily, allowing you to handle hooks 	automatically with simple code, without needing to manually edit 	hook files.Summary: Husky is an external tool that integrates with Git to simplify hook 	management, but it is not part of Git itself.It is true that Husky changes Git hooks, but it does so in a streamlined and user-friendly way.note : example of server side git hooks -&gt; CI/CD pipelines run on a server (such as Jenkins, GitHub Actions, GitLab CI) after the code is pushed to a remote repository.Installing HuskyTo install Husky:
npm install --save-dev huskyTo initialize Husky (for older versions):npx husky-init &amp;&amp; husky installInstalling CommitlintTo install Commitlint for validating commit messages:npm install --save-dev @commitlint/config-conventional @commitlint/cli
Create a file named commitlint.config.js	in the root of your project with the following content:module.exports = {
  extends: [&#039;@commitlint/config-conventional&#039;]
};Add a hook to validate commit messages using Husky:npx husky add .husky/commit-msg &#039;npx --no-install commitlint --edit $1&#039;npx: Executes the tool without installing it permanently.--no-install: Prevents reinstalling a package that&#x27;s already installed.commitlint: Validates the commit message.--edit &quot;$1&quot;: Retrieves the commit message from the file generated by Git.Configuring Commitlint RulesExample Commitlint configuration:module.exports = {
  extends: [&#039;@commitlint/config-conventional&#039;],
  rules: { 
    &#039;header-max-length&#039;: [2, &#039;always&#039;, 100], 
    &#039;type-enum&#039;: [2, &#039;always&#039;, [ &#039;feat&#039;, &#039;fix&#039;, &#039;docs&#039;, &#039;style&#039;, &#039;refactor&#039;, &#039;test&#039;, &#039;chore&#039;, &#039;merge&#039; ]],
    &#039;header-case&#039;: [2, &#039;always&#039;, &#039;sentence-case&#039;], 
    &#039;merge-message-format&#039;: [2, &#039;always&#039;, &#039;merged: &lt;branch&gt; into &lt;target&gt;&#039;] 
  },
};Explanation of values in the configuration:level: Specifies the strictness of the rule.0: The rule is ignored.1: Warning, the commit is not blocked.2: Error, the commit is blocked.when: Specifies whether the rule should always (&#x27;always&#x27;) or never (&#x27;never&#x27;) be 		applied.value: The expected value or format.Adding a Pre-commit HookTo run tests before committing:npx husky add .husky/pre-commit &amp;quotnpm test&amp;quotSummaryGit hooks are tools that allow running specific scripts during different stages of  the commit and push process.Husky improves this process by providing a simple, maintainable tool for managing Git hooks.Commitlint is used to ensure that commit messages follow a consistent structure and meet quality standards.</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Wed, 11 Sep 2024 18:11:49 +0330</pubDate>
            </item>
                    <item>
                <title>هات جر</title>
                <link>https://virgool.io/@p.ebrahimi163/%D9%87%D8%A7%D8%AA-%D8%AC%D8%B1-uansswxh6xtb</link>
                <description>برای استفاده از هات جر نیاز است که برای دامین خود که باید https باشد، حساب کاربری درست کنید. بعد از آن  نیاز است که  یک اسکریپت به فایل index.html صفحات اضافه شود . این اسکریپت از طریق خود سایت ایجاد میشود. و بعد از بروز کردن سایت شما با اعلام شما سرور هات جر سایت رو بازدید میکند. در صورت وجود آن اسکریپت در سایت شما حساب کاربری شما تایید شده و سرویس هات جر برای دامین شما فعال میشود . و از طریق پنل هات جر میتوانید رفتار کاربر را بررسی کنید.نمونه اسکریپت به شکل زیر است : &lt;!-- Hotjar Tracking Code for https://food.lifeweb.ir --&gt;

    (function(h,o,t,j,a,r){
        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
        h._hjSettings={hjid:2945743,hjsv:6};
        a=o.getElementsByTagName(&#039;head&#039;)[0];
        r=o.createElement(&#039;script&#039;);r.async=1;
        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
        a(r);
    })(window,document,&#039;https://static.hotjar.com/c/hotjar-&#039;,&#039;.js?sv=&#039;);
شما میتوانید حساب های پایه و بیزینسی نیز داشته باشید که در لینک زیر میتوانید جزییات آن را ببینیدhttps://www.hotjar.com/pricing/?utm_source=kb</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Thu, 28 Apr 2022 17:03:59 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی سرعت پیمایش آرایه  با متد های مختلف</title>
                <link>https://virgool.io/@p.ebrahimi163/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B3%D8%B1%D8%B9%D8%AA-%D9%BE%DB%8C%D9%85%D8%A7%DB%8C%D8%B4-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D8%A8%D8%A7-%D9%85%D8%AA%D8%AF-%D9%87%D8%A7%DB%8C-%D9%85%D8%AE%D8%AA%D9%84%D9%81-lnehmksh7pnj</link>
                <description>برای راحتی کار خود شروع به نوشتن چند متد ساده می کنیم function getNowTime(){
	return Date.now()
}
function calculateRunTime (callBack){
    var startTime = getNowTime();
    callBack();
    return getNowTime() - startTime;
}ابتدا با استفاده از کتابخانه math ارایه ای به تعداد ۱ میلیون خانه از اعداد رندوم ایجاد میکنیم .var randomNumbers  = [];
for(var i = 0; i&lt; 10000000; i++){
	randomNumbers.push(Math.random()*1000);
}بعد از ایجاد ارایه با متد های مختلف شروع به پیمایش آرایه میکنیم .روش اول با استفاده از حلقه ساده for:function forMethod(){
  var forNumbers = [];
  for(var i = 0; i&lt; randomNumbers.length; i++){
      forNumbers.push(randomNumbers[i]);
   }
  return forNumbers;
}
console.log(&#039;simple for: &#039;, calculateRunTime( forMethod) )روش دوم با استفاده از تابع map:function mapMethod (){
  var mapNumbers = [];
   var cloneRandomNumbers = randomNumbers.map((randomNumber)=&gt;{ 	 
      mapNumbers.push(randomNumber);
  })
  return mapNumbers;
}
console.log(&#039;standard map: &#039;, calculateRunTime( mapMethod) )روش سوم با استفاده از تابع foreach:function forEachMethod (){ 
   var forEachNumbers = randomNumbers.forEach((randomNumber)=&gt;{ 	
       return randomNumber; 
   })
   return forEachNumbers;
 }
 console.log(&#039;foreach: &#039;, calculateRunTime( forEachMethod) )</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Mon, 28 Jun 2021 02:00:44 +0430</pubDate>
            </item>
                    <item>
                <title>headers</title>
                <link>https://virgool.io/@p.ebrahimi163/headers-fxy7jlhadiao</link>
                <description>بعضی از هدر هایی که میتوان ست کرد برای axiosheaders: {
    &#039;Accept&#039;: &#039;*/*&#039;,
    &#039;Content-Type&#039;: &#039;application/json&#039;,
    &amp;quotConnection&amp;quot:&amp;quotkeep-alive&amp;quot,
    &amp;quotAccept-Encoding&amp;quot:&amp;quotgzip, deflate, br&amp;quot,
    &amp;quotAccept-Language&amp;quot:&amp;quoten-US,en;q=0.9,fa;q=0.8&amp;quot,
},</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Thu, 22 Apr 2021 15:35:50 +0430</pubDate>
            </item>
                    <item>
                <title>fetch</title>
                <link>https://virgool.io/@p.ebrahimi163/fetch-qaghdfyjabs3</link>
                <description>استفاده از fetch برای دریافت اطلاعات از سرور npm i fetchimport {fetchUrl} from &#039;fetch&#039;
import Qs from &#039;qs&#039;.....fetchUrl( config.baseUrl + url ,
    {
        headers : {your headers}
    },
     (err, meta, body)=&gt;{   // call back func 
         // console.log(&#039;err&#039;, err)
        // console.log(&#039;meta&#039;, meta)
        // console.log(&#039;body&#039;, JSON.parse(body.toString()))
        if(meta?.status &gt;= 200 &amp;&amp; meta.status&lt;= 300 ){
             callback(JSON.parse(body.toString()))  // have result 
         }
         else{
             callback(undefined, JSON.parse(body.toString()))  // have error
         }
     }
     )</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Thu, 22 Apr 2021 15:17:51 +0430</pubDate>
            </item>
                    <item>
                <title>قلب</title>
                <link>https://virgool.io/@p.ebrahimi163/%D9%82%D9%84%D8%A8-n9jxwpxnr2ii</link>
                <description>باز پخش قلبباز پخش قلبم تپش قلب توست  https://virgool.io/p/n9jxwpxnr2ii/%D9%82%D9%84%D8%A8%D9%87%D8%B1%DA%A9%D8%B3%D8%AA%D9%86%D9%87%D8%A7%D8%AE%D8%A7%D9%86%D9%87%D8%A7%DB%8C%D8%B3%D8%AA%DA%A9%D9%87%D9%87%DB%8C%DA%86%DA%A9%D8%B3%D8%A8%D9%87%D8%A7%D8%AE%D8%AA%DB%8C%D8%A7%D8%B1%D8%AE%D9%88%D8%AF%D9%86%D9%85%DB%8C%D8%AA%D9%88%D8%A7%D9%86%D8%AF%D9%88%D8%A7%D8%B1%D8%AF%D8%A2%D9%86%D8%B4%D9%88%D8%AF. </description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Tue, 13 Apr 2021 22:39:48 +0430</pubDate>
            </item>
                    <item>
                <title>use strict</title>
                <link>https://virgool.io/@p.ebrahimi163/use-strict-tk1eztcuivog</link>
                <description>در جاوا اسکریپت محدودیتی برای استفاده از متغییر ها وجود ندارد . بعد از ورژن es5 محدودیتی برای استفاده از متغییر های تعریف نشده ( strict )  ایجاد شد . برای استفاده از این محدودیت به بالای هر فایل جاوا اسکریپتی یک خط کد میتوان اضافه کرد. &amp;quotuse strict&amp;quotبا این یک خط کد این محدودیت برای متغیبر ها اعمال میشود . و دیگر نمیتوان از متغییر های تعریف نشده استفاده کرد و مقداری را به آنها انتصاب کرد .علت استرینگ بودن آن این است که در مرورگر های قدیمی این یک دستور نباشد و به ارور نخوریم . فقط یک متغییر در نظر گرفته می شود و مقدار استرینگ را درون آن میریزد .اتفاقات دیگری نیز به وجود آمده اند که عبارتند از : حذف delete : دستور delete دیگر اجرا نمی شود و با خطا مواجه میشوید . حذف اعداد Hex: دیگر نمیتوان از اعداد مبنای ۸ استفاده کرد . عدم امکان تغییر متغییر های read only: Object.defineProperty( data , &amp;quotname&amp;quot , { value: &amp;quotali&amp;quot , writable:false }  )دیگر نمیتوان مقدار ali  را تغییر داد . و هنگام تغییر با خطا مواجه می شویم . و...</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Sat, 13 Feb 2021 17:52:38 +0330</pubDate>
            </item>
                    <item>
                <title>قسمت دوم فایل tsconfig.json</title>
                <link>https://virgool.io/@p.ebrahimi163/%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D9%81%D8%A7%DB%8C%D9%84-tsconfigjson-skbqyipnkzij</link>
                <description>در واقع فایل tsconfig.json بیانگر این است که پوشه ای که در آن قرار داریم پوشه root  پروژه تایپ اسکریپت است . گاهی اوقات فایل tsconfig.json را با نام jsconfig.json نیز می بینیم . در واقع هر دو به یک معنی می باشندبا داشتن این فایل در هر دایرکتوری ای IDE  آن دایرکتوری را روت اصلی یک پروژه تایپ اسکریپت میداند و آن را به صورت یک پروژه باز میکند. برای اجرا اولیه میتوان فایل های جاوا اسکریپتی خود را در یک فایل html باز کنیم . و آن فایل را توسط مرور گر اجرا کنیم . تا خروجی کار خود را ببینیم. راه دیگری نیز وجود دارد که قبلا به آن اشاره کردیم و آن اجرا توسط نود جی اس بود . برای دادن نظم برای فایل های تبدیل شده میتوان به tsconfig  مقدار outDir  را تنظیم کنیم تا فایل های تبدیل شده را در پوشه مشخص شده بریزد . {
&amp;quotoutDir&amp;quot: &amp;quotdist&amp;quot,
&amp;quotrootDir&amp;quot:&amp;quotsrc&amp;quot
}با این تنظیم نظم اولیه به فایل ها داده میشود و از این به بعد باید فایل های تایپ اسکریپت را در پوشه src  واقع در روت پروژه ایجاد کنیم .هنگامی که کد های جاوا اسکریپت در مرورگر اجرا می شود فایل های جاوا اسکریپت را در قسمت developers tools در تب source  میتوانیم کد های جاوا اسکریپت اجرایی را ببینیم . برای هر فایل جاوا اسکریپتی که اجرا شده یک تب ایجاد میشود . و فایل های اجرا شده را میتوان جدا گانه دید و بررسی کرد . در تایپ اسکریپت این امکان وجود دارد که بدون تغییر فایل های تایپ اسکریپت آنها را در قسمت source  ببینینم و با همان فرمت بررسی کنیم . و ایرادات خود را برطرف کنیم . برای این کار نیاز به یک سری فایل مپ وجود دارد تا مرورگر بتواند فایل های جاوا اسکریپت را به حالت اول تایپ اسکریپت خود تبدیل کند . این فایل ها با پسوند js.map  نام گذاری می شوند . برای ایجاد آنها نیازی نیست که ما خود ایجاد کنیم . در هنگام تبدیل فایل های تایپ اسکریپت با تنظیم مقدار sourceMap  در فایل tsconfig  این فایل ها به صورت خودکار ایجاد  میشوند . {
&amp;quotsourceMap&amp;quot : true
}با این تنظیم تمام فایل های تایپ اسکریپت در هنگام تبدیل به همراه  فایل مپ خود ایجاد می شوند . مرورگر این فایل ها را میخواند و در قسمت source  تبدیل فایل های جاوا اسکریپت به تایپ اسکریپت را انجام می دهند .  و در فایلی با نام همان فایل با پسوند ts در کنار آن نمایش می دهد و ما علاوه بر فایل جاوا اسکریپتی فایل تایپ اسکریپتی را نیز داریم . </description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Tue, 09 Feb 2021 00:37:43 +0330</pubDate>
            </item>
                    <item>
                <title>tsconfig.json</title>
                <link>https://virgool.io/@p.ebrahimi163/tsconfigjson-ma4wtbdrafev</link>
                <description>برای پیکر بندی تنظیمات تایپ اسکریپت فایلی به نام tsconfig.json ایجاد می شود که این تنظیمات را درون آن می نویسند. برای ایجاد آن میتوان دستور زیر را در پوشه پروژه اجرا کرد. tsc --initبرای اجرا تایپ اسکریپت با تنظیمات موجود در فایل tsconfig کافیست دستور زیر را اجرا کرد. tsc و همچنین میتوان حالت watch  را نیز به آن اضافه کرد تا در هر تغییر فایل ها به صورت خودکار عملیات تبدیل اتفاق بیوفتد . tsc -wدر فایل tsconfig  به طور پیشفرض کل فایل هایی که در پوشه اصلی وجود دارد جز پروژه در نظر گرفته می شود و هر بار عملیات تایپ اسکریپت روی آنها اجرا میشود. و دیگر نیازی نیست که فایل ها را مشخص کرد. برای مشخص کردن فایل هایی که جز پروژه نیستند میتوان آنها را در قسمت exclude  فایل tsconfig ذکر کرد {
     &amp;quotexclude&amp;quot: [
            &amp;quotindex.ts&amp;quot
     ]
}بعد از این کار فایلی با نام index.js ایجاد نمی شود چون فایل index.ts  تبدیل نمی شود.میتوانیم کل فایل های یک پوشه را نیز مشخص کنیم.{      
      &amp;quotexclude&amp;quot: [
             &amp;quotsrc&amp;quot,
             &amp;quotnode_modules&amp;quot,
             &amp;quotassets/js&amp;quot
      ] 
}میتوان فایل های مشابه را نیز مشخص کرد . {
             &amp;quotexclude&amp;quot: [ 
                 &amp;quot*options.ts&amp;quot,
                 &amp;quot*data.ts&amp;quot
             ]  
}</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Sat, 06 Feb 2021 11:19:34 +0330</pubDate>
            </item>
                    <item>
                <title>اجرا کردن فایل های تایپ اسکریپت</title>
                <link>https://virgool.io/@p.ebrahimi163/%D8%A7%D8%AC%D8%B1%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-jlym5ylprog0</link>
                <description>برای اجرای فایل های تایپ اسکریپت باید ابتدا فایل های تایپ اسکریپت را به جاوا اسکریپت تبدیل کرد. برای این کار ابتدا باید تایپ اسکریپت را نصب کرد. npm install -g typescriptبعد از نصب آن فایل تایپ اسکریپت خود را ایجاد می کنیم .برای مثال فایلی با نام index.tsسپس میتوان با دستور زیر فایل تایپ اسکریپت را به جاوا اسکریپت تبدیل کرد . tsc index.tsخروجی دستور بالا فایلی با نام index.js می باشد .که محتویات آن کد های تایپ اسکریپتی هست که به جاوا اسکریپت es5 تبدیل شده است. برای این که بعد از هر بار ویرایش فایل ها مجبور به اجرای دستور بالا نباشیم میتوانیم از دستور زیر استفاده کنیم . tsc index.ts --watch با این دستور فایل تایپ اسکریپت بعد از هر بار تغییر کردن خودکار به فایل جاوا اسکریپت تبدیل می شود .بعد از تبدیل فایل با استفاده از مروگر یا node میتوانیم فایل مورد نظر خود را اجرا کنیم . node index.jsفایل tsconfig.json چیست ؟ برای تبدیل فایل های تایپ اسکریپ با جاوا اسکریپت تنظیماتی را می توان انجام داد.  روش های مختلفی وجود دارد. میتوان فایل ها یا پوشه هایی که باید تبدیل شوند را مشخص کرد. خروجی را مشخص کرد. فایل های افزوده و فایل هایی که باید نباید اضافه شوند را جدا کرد. این تنظیمات در فایلی به اسم tsconfig.json مشخص می شوند. و موقع تبدیل بر اساس آن تبدیل صورت میگیرد . برای خواندن فایل تنظیمات می توان در پوشه ای که آن قرار دارد دستور زیر را اجرا کرد. tscبا اجرای این دستور فایل tsconfig.json  اگر وجود داشته باشد تنظیمات از آن خوانده میشود و طبق آن تبدیل انجام می شود.</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Wed, 03 Feb 2021 00:04:34 +0330</pubDate>
            </item>
                    <item>
                <title>انواع داده در تایپ اسکریپت</title>
                <link>https://virgool.io/@p.ebrahimi163/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-mm1kjoszn3s8</link>
                <description>برای متغییر ها در تایپ اسکریپت نوع های زیر وجود دارد:1- boolean (true | false) -&gt;  *  مقادیر بولی let male: boolean= true;2- string  ( &#x27;...&#x27; | &quot;...&quot; | &#x60;...&#x60; ) -&gt; *  مقادیر رشته ای let name: string =&amp;quotali&quot;3- number ( integer, float, hex, bin ) -&gt;  *  مقادیر عددی let a: number = 1 ;  4- Array or []  -&gt;  list لیست هاlet names: Array= [&#039;ali&#039; , 12, true]let names: []=[]به متغییر های نوع ارایه نوع هر خانه را نیز میتوان مشخص کرد . let names : Array&lt;string&gt; = [&#039;ali&#039;, &#039;hasan&#039;];5- tuple (set | like limited Array) -&gt; مقادیر مجموعه ای  let location : [number, number] = [ 35.6961 , 51.4231 ]6- enum (const type) -&gt; مقادیری ثابت ابتدا باید یک enum تعریف کرد. سپس نوع متغییر را به enum تعریف شده انتصاب داد enum Color {  Red = 1,  Green = 2,  Blue = 3, };let c: Color = Color.Green;7-unknown(multi type) مقادیری که هنوز مشخص نشده اندlet notSure: unknown = 4;8- any (all type) : برای مقادیری که نوع های متفاوتی دارندlet size: any= 100;let size: any= &#039;100px&#039;;9-void (nothing)-&gt;  نوع خروجی توابعی که چیزی بر نمی گردانندfunction (): void {}#تععین نوع بازگشتی برای تابع در تایپ اسکریپت 10- null and undefined مقادیر تعریف نشده 11- never -&gt;  مقادیری که هیچ وقت بر نمیگرددمثل حلقه بی نهایت یا توابعی که قبل از خروجی exception بر میگردانندfunction infiniteLoop(): never { while (true) {}}12- object -&gt;    مقادیری که نوع اولیه نیستند.انواع اولیه : number, string, boolean, bigint, symbol, null, or undefinedfunction create(o: object | null): voidcreate({id:0});</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Mon, 01 Feb 2021 17:32:57 +0330</pubDate>
            </item>
                    <item>
                <title>تعریف اشیا و کلاس در تایپ اسکریپت</title>
                <link>https://virgool.io/@p.ebrahimi163/%D8%AA%D8%B9%D8%B1%DB%8C%D9%81-%D8%A7%D8%B4%DB%8C%D8%A7-%D9%88-%DA%A9%D9%84%D8%A7%D8%B3-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-icwoiidyiwdc</link>
                <description>برای ایجاد پارامتر های از نوع آبجکت (object {}) در تایپ اسکریپت می توان از interface استفاده کرد. برای مثال برای تعریف کلاس person :interface User {
    name: string;
    id: number;
}برای استفاده از آن نیز میتوان نوع user را به متغییر تعریف شده اضافه کرد. const user: User = {
    name: &amp;quotAli&amp;quot,
    id: 12,
};</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Sat, 30 Jan 2021 21:24:00 +0330</pubDate>
            </item>
                    <item>
                <title>فایل های تایپ اسکریپت</title>
                <link>https://virgool.io/@p.ebrahimi163/%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-zklfhaqte64v</link>
                <description>فایل های تایپ اسکریپت با پسوند ts ایجاد می شوند.برای اجرای فایل تایپ اسکریپت می توان آن را به فایل جاوا اسکریپت (پسوند js) تبدیل کرد .برای تبدیل کد های تایپ اسکریپت به جاوا اسکریپت میتوان از دستور زیر استفاده کرد.tsc {type script file name (ts) }بعد از تبدیل فایل ها میتوان آنها را با node اجرا کرد. node {java script file name (js) }</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Sat, 30 Jan 2021 21:14:52 +0330</pubDate>
            </item>
                    <item>
                <title>تایپ اسکریپت چیست؟</title>
                <link>https://virgool.io/@p.ebrahimi163/%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%DA%86%DB%8C%D8%B3%D8%AA-wpkoeonoa6gq</link>
                <description>تایپ اسکریپت یک زبان برنامه نویسی است. با افزودن قابلیت تعریف انواع داده ها به جاوا اسکریپت، یکی از پر استفاده ترین ابزار‌ها در جهان شده است. آخرین نسخه آن ۴.۱ می باشد.با دستور زیر نصب می شود :  npm install typescriptlet displayName: string = &#039;ali ahmadi&#039;;در اینجا  متغییری با نام displayName و نوع string تعریف کرده ایم و مقدار &#x27;محمد محمدی&#x27; را به آن انتصاب داده ایم.افزودن انواع داده به برنامه نویس این کمک را میکند که بدون نوشتن کد های بیشتری عملیات validation را انجام دهد . برای مثال :let displayName: string = 1000;این کد خطا می دهد که مقدار ۱۰۰۰ به نوع string قابل انتصاب نیست.تایپ اسکریپت</description>
                <category>پویا ابراهیمی</category>
                <author>پویا ابراهیمی</author>
                <pubDate>Tue, 26 Jan 2021 18:40:10 +0330</pubDate>
            </item>
            </channel>
</rss>