{"id":70021,"date":"2024-07-20T02:16:41","date_gmt":"2024-07-19T22:46:41","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/episode-2428-angular-181-ebg\/"},"modified":"2024-07-20T02:16:41","modified_gmt":"2024-07-19T22:46:41","slug":"episode-2428-angular-181-ebg","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/episode-2428-angular-181-ebg\/","title":{"rendered":"\u0642\u0633\u0645\u062a 24\/28: Angular 18.1 &#8211; \u0627\u0646\u062c\u0645\u0646 DEV"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            Angular 18.1 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f.<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u0633\u0631\u06cc 17\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u062b\u06cc\u0631\u06af\u0630\u0627\u0631 \u0632\u06cc\u0627\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u062f\u0627\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u0622\u0646 \u0635\u062d\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u062f\u0631 \u062a\u0648\u06cc\u06cc\u062a\u0631 \u06a9\u0645\u06cc \u2013 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u06af\u0641\u062a \u2013 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0628\u0647 \u0622\u0646 \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062f\u0633\u062a\u0648\u0631 \u062c\u062f\u06cc\u062f let syntax \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0647 \u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0644\u06af\u0648 \u0645\u0642\u062f\u0627\u0631\u06cc \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u06cc\u0645.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u06cc \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u0628\u0627\u0632 \u0646\u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u06cc\u0634\u0631\u0641\u062a \u0646\u062d\u0648\u06cc \u0628\u0628\u06cc\u0646\u06cc\u0645.<\/p>\n<p>Netanel Basal \u0645\u0642\u0627\u0644\u0647\u200c\u0627\u06cc \u0646\u0648\u0634\u062a\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\/\u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631 let syntax \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>          \u062a\u06a9\u0627\u0645\u0644 \u0627\u0646\u06af\u0648\u0644\u0627\u0631 \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0648 \u0647\u06cc\u062c\u0627\u0646\u200c\u0627\u0646\u06af\u06cc\u0632\u06cc \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u062f\u0633\u062a\u0648\u0631\u06cc @let \u06a9\u0647 \u0627\u062e\u06cc\u0631\u0627\u064b \u0627\u062f\u063a\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 avilalabe \u062f\u0631\u2026<\/p>\n<p>        netbasal.com<\/p>\n<p>\u062f\u06cc\u06af\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647 \u0646\u0633\u062e\u0647 \u0641\u0631\u0639\u06cc\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc TypeScript 5.5 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0645\u062d\u0645\u0648\u0644\u0627\u062a \u0646\u0648\u0639 \u0627\u0633\u062a\u0646\u0628\u0627\u0637\u200c\u0634\u062f\u0647 \u0647\u0645\u0631\u0627\u0647 \u0627\u0633\u062a.<\/p>\n<p>@Component({<br \/>\n  selector: &#8216;app-root&#8217;,<br \/>\n  standalone: true,<br \/>\n  template: &#8220;<br \/>\n})<br \/>\nexport class AppComponent {<br \/>\n  message$: Observablestring&gt; = inject(HttpClient).get(&#8216;http:\/\/www.host.com\/message&#8217;).pipe(filter(value =&gt; this.isString(value)));<\/p>\n<p>  isString(value: unknown) {<br \/>\n    return typeof value === &#8216;string&#8217;;<br \/>\n  }<\/p>\n<p>  \/\/ before TypeScript 5.5<br \/>\n  isStringExplict(value: unknown): value is string {<br \/>\n    return typeof value === &#8216;string&#8217;;<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u0627\u0628\u0639 \u0641\u0631\u0627\u062e\u0648\u0627\u0646 \u0646\u0634\u062f\u0647 \u062f\u0631 \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u062e\u0637\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0627\u06cc\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0646\u0647 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u062a\u0631\u06a9\u06cc\u0628 \u0628\u0627 \u0633\u06cc\u06af\u0646\u0627\u0644\u200c\u0647\u0627.<\/p>\n<p>@Component({<br \/>\n  selector: &#8216;app-root&#8217;,<br \/>\n  standalone: true,<br \/>\n  \/\/ click get a warning<br \/>\n  template: `Say hi`<br \/>\n})<br \/>\nexport class AppComponent {<br \/>\n  sayHi() {<br \/>\n    console.log(&#8216;hi&#8217;);<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 routerLink \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 UrlTree \u0631\u0627 \u0646\u06cc\u0632 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f.<\/p>\n<p>@Component({<br \/>\n  selector: &#8216;app-root&#8217;,<br \/>\n  standalone: true,<br \/>\n  imports: [RouterOutlet, RouterLinkWithHref],<br \/>\n  template: `Admin`<br \/>\n})<br \/>\nexport class AppComponent {<br \/>\n  adminLink = inject(Router).createUrlTree([&#8216;admin&#8217;, {site: &#8216;basic&#8217;}, &#8216;main&#8217;])<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u060c \u0628\u0647 ChangeLog \u0631\u0633\u0645\u06cc\u060c \u0636\u0628\u0637 \u062c\u0644\u0633\u0647 \u067e\u0631\u0633\u0634 \u0648 \u067e\u0627\u0633\u062e\u060c \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 let\u060c \u0648 \u0627\u0644\u0628\u062a\u0647 \u0647\u0645\u0647 \u0645\u0642\u0627\u0644\u0627\u062a \u0645\u062e\u062a\u0644\u0641 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0632 \u0627\u0646\u062c\u0645\u0646 \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<p>          \u0627\u0646\u062c\u0645\u0646 \u0627\u0646\u06af\u0648\u0644\u0627\u0631\u060c \u0628\u0647 \u062c\u0631\u0645\u06cc \u0627\u0644\u0628\u0648\u0631\u0646 \u0648 \u0645\u0627\u0631\u06a9 \u062a\u0627\u0645\u067e\u0633\u0648\u0646 \u0628\u067e\u06cc\u0648\u0646\u062f\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f \u0648 \u06a9\u0645\u06cc \u0633\u0631\u06af\u0631\u0645 \u0634\u0648\u0646\u062f!<\/p>\n<p>        youtube.com<\/p>\n<p>          Angular 18.1 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f!<\/p>\n<p>        blog.ninja-squad.com<\/p>\n<p>          \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646: \u0645\u0627\u0631\u06a9 \u062a\u0627\u0645\u067e\u0633\u0648\u0646\u060c \u06a9\u0631\u06cc\u0633\u062a\u06cc\u0627\u0646 \u06a9\u0648\u0633\u062a\u0627\u062f\u06cc\u0646\u0648\u0641<\/p>\n<p>        blog.angular.dev<\/p>\n<div data-article-id=\"1929508\" id=\"article-body\">\n<p>Angular 18.1 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=yAki8Xvwa98\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=yAki8Xvwa98<\/a><br \/>\n<\/iframe>\n<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u0633\u0631\u06cc 17\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u062b\u06cc\u0631\u06af\u0630\u0627\u0631 \u0632\u06cc\u0627\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u062f\u0627\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u0622\u0646 \u0635\u062d\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u062f\u0631 \u062a\u0648\u06cc\u06cc\u062a\u0631 \u06a9\u0645\u06cc \u2013 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u06af\u0641\u062a \u2013 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0628\u0647 \u0622\u0646 \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062f\u0633\u062a\u0648\u0631 \u062c\u062f\u06cc\u062f let syntax \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0647 \u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0644\u06af\u0648 \u0645\u0642\u062f\u0627\u0631\u06cc \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u06cc\u0645.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u06cc \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u0628\u0627\u0632 \u0646\u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u06cc\u0634\u0631\u0641\u062a \u0646\u062d\u0648\u06cc \u0628\u0628\u06cc\u0646\u06cc\u0645.<\/p>\n<p>Netanel Basal \u0645\u0642\u0627\u0644\u0647\u200c\u0627\u06cc \u0646\u0648\u0634\u062a\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\/\u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631 let syntax \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<div class=\"crayons-card c-embed text-styles text-styles--secondary\">\n<div class=\"c-embed__cover\">\n<p>          <\/p><\/div>\n<div class=\"c-embed__body\">\n<p class=\"truncate-at-3\">\n<p>          \u062a\u06a9\u0627\u0645\u0644 \u0627\u0646\u06af\u0648\u0644\u0627\u0631 \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0648 \u0647\u06cc\u062c\u0627\u0646\u200c\u0627\u0646\u06af\u06cc\u0632\u06cc \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u062f\u0633\u062a\u0648\u0631\u06cc @let \u06a9\u0647 \u0627\u062e\u06cc\u0631\u0627\u064b \u0627\u062f\u063a\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 avilalabe \u062f\u0631\u2026\n        <\/p>\n<div class=\"color-secondary fs-s flex items-center\">\n          <img decoding=\"async\" alt=\"\u0641\u0627\u0648\u06cc\u06a9\u0648\u0646\" class=\"c-embed__favicon m-0 mr-2 radius-0\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--41Zxt9kW--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/miro.medium.com\/v2\/1%2Am-R_BkNf1Qjr1YbyOIJY2w.png\" loading=\"lazy\" width=\"32\" height=\"32\" title=\"\"><br \/>\n        netbasal.com\n      <\/div>\n<\/p><\/div>\n<\/div>\n<hr\/>\n<p>\u062f\u06cc\u06af\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647 \u0646\u0633\u062e\u0647 \u0641\u0631\u0639\u06cc\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc TypeScript 5.5 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0645\u062d\u0645\u0648\u0644\u0627\u062a \u0646\u0648\u0639 \u0627\u0633\u062a\u0646\u0628\u0627\u0637\u200c\u0634\u062f\u0647 \u0647\u0645\u0631\u0627\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"p\">@<\/span><span class=\"nd\">Component<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">selector<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">app-root<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">standalone<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">template<\/span><span class=\"p\">:<\/span> <span class=\"s2\">``<\/span>\n<span class=\"p\">})<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">AppComponent<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">message$<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Observable<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">HttpClient<\/span><span class=\"p\">).<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">http:\/\/www.host.com\/message<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nf\">pipe<\/span><span class=\"p\">(<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">isString<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">)));<\/span>\n\n  <span class=\"nf\">isString<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">unknown<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"k\">typeof<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">string<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"c1\">\/\/ before TypeScript 5.5<\/span>\n  <span class=\"nf\">isStringExplict<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">unknown<\/span><span class=\"p\">):<\/span> <span class=\"nx\">value<\/span> <span class=\"k\">is<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"k\">typeof<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">string<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u0627\u0628\u0639 \u0641\u0631\u0627\u062e\u0648\u0627\u0646 \u0646\u0634\u062f\u0647 \u062f\u0631 \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u062e\u0637\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0627\u06cc\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0646\u0647 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u062a\u0631\u06a9\u06cc\u0628 \u0628\u0627 \u0633\u06cc\u06af\u0646\u0627\u0644\u200c\u0647\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"p\">@<\/span><span class=\"nd\">Component<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">selector<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">app-root<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">standalone<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"c1\">\/\/ click get a warning<\/span>\n  <span class=\"na\">template<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`<button>Say hi<\/button>`<\/span>\n<span class=\"p\">})<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">AppComponent<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">sayHi<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">hi<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 routerLink \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 UrlTree \u0631\u0627 \u0646\u06cc\u0632 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"p\">@<\/span><span class=\"nd\">Component<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">selector<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">app-root<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">standalone<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">imports<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"nx\">RouterOutlet<\/span><span class=\"p\">,<\/span> <span class=\"nx\">RouterLinkWithHref<\/span><span class=\"p\">],<\/span>\n  <span class=\"na\">template<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`<a>Admin`<\/span>\n<span class=\"p\">})<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">AppComponent<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">adminLink<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">inject<\/span><span class=\"p\">(<\/span><span class=\"nx\">Router<\/span><span class=\"p\">).<\/span><span class=\"nf\">createUrlTree<\/span><span class=\"p\">([<\/span><span class=\"dl\">'<\/span><span class=\"s1\">admin<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"na\">site<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">basic<\/span><span class=\"dl\">'<\/span><span class=\"p\">},<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">main<\/span><span class=\"dl\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u060c \u0628\u0647 ChangeLog \u0631\u0633\u0645\u06cc\u060c \u0636\u0628\u0637 \u062c\u0644\u0633\u0647 \u067e\u0631\u0633\u0634 \u0648 \u067e\u0627\u0633\u062e\u060c \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 let\u060c \u0648 \u0627\u0644\u0628\u062a\u0647 \u0647\u0645\u0647 \u0645\u0642\u0627\u0644\u0627\u062a \u0645\u062e\u062a\u0644\u0641 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0632 \u0627\u0646\u062c\u0645\u0646 \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<div class=\"crayons-card c-embed text-styles text-styles--secondary\">\n<div class=\"c-embed__cover\">\n<p>          <img decoding=\"async\" alt=\"\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--TChwvYAO--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/i.ytimg.com\/vi\/MofsAODoNDs\/maxresdefault.jpg\" height=\"450\" loading=\"lazy\" class=\"m-0\" width=\"800\" title=\"\"><\/p><\/div>\n<div class=\"c-embed__body\">\n<p class=\"truncate-at-3\">\n<p>          \u0627\u0646\u062c\u0645\u0646 \u0627\u0646\u06af\u0648\u0644\u0627\u0631\u060c \u0628\u0647 \u062c\u0631\u0645\u06cc \u0627\u0644\u0628\u0648\u0631\u0646 \u0648 \u0645\u0627\u0631\u06a9 \u062a\u0627\u0645\u067e\u0633\u0648\u0646 \u0628\u067e\u06cc\u0648\u0646\u062f\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f \u0648 \u06a9\u0645\u06cc \u0633\u0631\u06af\u0631\u0645 \u0634\u0648\u0646\u062f!\n        <\/p>\n<div class=\"color-secondary fs-s flex items-center\">\n          <img decoding=\"async\" alt=\"\u0641\u0627\u0648\u06cc\u06a9\u0648\u0646\" class=\"c-embed__favicon m-0 mr-2 radius-0\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--ZvdMeCtq--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/www.youtube.com\/s\/desktop\/060ac52e\/img\/favicon.ico\" loading=\"lazy\" width=\"16\" height=\"16\" title=\"\"><br \/>\n        youtube.com\n      <\/div>\n<\/p><\/div>\n<\/div>\n<div class=\"crayons-card c-embed text-styles text-styles--secondary\">\n<div class=\"c-embed__cover\">\n<p>          <img decoding=\"async\" alt=\"\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--HbjC13mc--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/blog.ninja-squad.com\/assets\/images\/angular_gradient.png\" height=\"800\" loading=\"lazy\" class=\"m-0\" width=\"800\" title=\"\"><\/p><\/div>\n<div class=\"c-embed__body\">\n<p class=\"truncate-at-3\">\n<p>          Angular 18.1 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f!\n        <\/p>\n<div class=\"color-secondary fs-s flex items-center\">\n          <img decoding=\"async\" alt=\"\u0641\u0627\u0648\u06cc\u06a9\u0648\u0646\" class=\"c-embed__favicon m-0 mr-2 radius-0\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s---88H57KW--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/blog.ninja-squad.com\/assets\/images\/favicon.ico\" loading=\"lazy\" width=\"32\" height=\"32\" title=\"\"><br \/>\n        blog.ninja-squad.com\n      <\/div>\n<\/p><\/div>\n<\/div>\n<div class=\"crayons-card c-embed text-styles text-styles--secondary\">\n<div class=\"c-embed__cover\">\n<p>          <img decoding=\"async\" alt=\"\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--81RP8N6t--\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/miro.medium.com\/v2\/resize:fit:960\/1%2AYQM8ZHrHZOFJi7gPNcZ0xA.png\" height=\"450\" loading=\"lazy\" class=\"m-0\" width=\"800\" title=\"\"><\/p><\/div>\n<div class=\"c-embed__body\">\n<p class=\"truncate-at-3\">\n<p>          \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646: \u0645\u0627\u0631\u06a9 \u062a\u0627\u0645\u067e\u0633\u0648\u0646\u060c \u06a9\u0631\u06cc\u0633\u062a\u06cc\u0627\u0646 \u06a9\u0648\u0633\u062a\u0627\u062f\u06cc\u0646\u0648\u0641\n        <\/p>\n<div class=\"color-secondary fs-s flex items-center\">\n          <img decoding=\"async\" alt=\"\u0641\u0627\u0648\u06cc\u06a9\u0648\u0646\" class=\"c-embed__favicon m-0 mr-2 radius-0\" src=\"https:\/\/res.cloudinary.com\/practicaldev\/image\/fetch\/s--tb4_FaA---\/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800\/https:\/\/miro.medium.com\/v2\/resize:fill:256:256\/1%2AuJa0SU-F2NXVKhHTbP1HBw.png\" loading=\"lazy\" width=\"256\" height=\"256\" title=\"\"><br \/>\n        blog.angular.dev\n      <\/div>\n<\/p><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang Angular 18.1 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f. \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u0633\u0631\u06cc 17\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u062b\u06cc\u0631\u06af\u0630\u0627\u0631 \u0632\u06cc\u0627\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u062f\u0627\u0631\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u0622\u0646 \u0635\u062d\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u062f\u0631 \u062a\u0648\u06cc\u06cc\u062a\u0631 \u06a9\u0645\u06cc \u2013 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u06af\u0641\u062a \u2013 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0628\u0647 \u0622\u0646 \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062f\u0633\u062a\u0648\u0631 \u062c\u062f\u06cc\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":70023,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-70021","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/70021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=70021"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/70021\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/70023"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=70021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=70021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=70021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}