JavaScript に型を追加する理由
これを想像してください: JavaScript で楽しくコーディングしていると、突然、「未定義のプロパティ 'name' を読み取れません」というメッセージが表示されます。ああ、みんな行ったことあるよ! TypeScript は、こうした間違いが起こる前に気づいてくれる友人がいるようなものです。
起源の物語
JavaScript はクモに噛まれる前のピーター・パーカーのようなものです - 大きな可能性を秘めていますが、事故が起こりやすいです。 TypeScript は、JavaScript にスーパーパワーを与えるスパイダーバイトです。バグを早期に発見し、コードの信頼性を高める型システムを追加します。
初めての TypeScript の冒険
簡単な JavaScript 関数から始めて、それを TypeScript に変換してみましょう:
// JavaScript function greet(name) { return "Hello, " + name + "!"; }
次に、TypeScript マジックを追加しましょう:
// TypeScript function greet(name: string): string { return "Hello, " + name + "!"; }
文字列が見えますか?これは TypeScript が「この関数は文字列を受け取り、文字列を返す」と伝えているものです。今度はこれを試してください:
greet(123); // Error: Argument of type 'number' is not assignable to parameter of type 'string'
TypeScript が潜在的なバグから私たちを救ってくれました! ?
基本タイプ: あなたの新しいスーパーパワー
いくつかの基本的な TypeScript 型を見てみましょう:
// Basic types let heroName: string = "Spider-Man"; let age: number = 25; let isAvenger: boolean = true; let powers: string[] = ["web-slinging", "wall-crawling"]; // Object type let hero: { name: string; age: number; powers: string[]; } = { name: "Spider-Man", age: 25, powers: ["web-slinging", "wall-crawling"] };
インターフェース: 独自のタイプの作成
インターフェースはオブジェクトの設計図のようなものです。これらはデータの形状を定義するのに非常に役立ちます:
interface Hero { name: string; age: number; powers: string[]; catchPhrase?: string; // Optional property } function introduceHero(hero: Hero): void { console.log(`I am ${hero.name}, and I'm ${hero.age} years old!`); if (hero.catchPhrase) { console.log(hero.catchPhrase); } } const spiderMan: Hero = { name: "Spider-Man", age: 25, powers: ["web-slinging", "wall-crawling"] }; introduceHero(spiderMan);
タイプエイリアス: カスタムタイプ
独自のタイプの組み合わせを作成したい場合があります:
type PowerLevel = 'rookie' | 'intermediate' | 'expert'; interface Hero { name: string; powerLevel: PowerLevel; } const batman: Hero = { name: "Batman", powerLevel: "expert" // TypeScript will ensure this is one of the allowed values };
ジェネリック: 究極の柔軟性
ジェネリックは、コードをより再利用しやすくするワイルドカードのようなものです。
function createHeroTeam<t>(members: T[]): T[] { return [...members]; } interface Superhero { name: string; power: string; } interface Villain { name: string; evilPlan: string; } const heroes = createHeroTeam<superhero>([ { name: "Iron Man", power: "Technology" }, { name: "Thor", power: "Lightning" } ]); const villains = createHeroTeam<villain>([ { name: "Thanos", evilPlan: "Collect infinity stones" } ]); </villain></superhero></t>
現実世界の例: Todo アプリ
TypeScript を使用して簡単な ToDo アプリを構築しましょう:
interface Todo { id: number; title: string; completed: boolean; dueDate?: Date; } class TodoList { private todos: Todo[] = []; addTodo(title: string, dueDate?: Date): void { const todo: Todo = { id: Date.now(), title, completed: false, dueDate }; this.todos.push(todo); } toggleTodo(id: number): void { const todo = this.todos.find(t => t.id === id); if (todo) { todo.completed = !todo.completed; } } getTodos(): Todo[] { return this.todos; } } // Usage const myTodos = new TodoList(); myTodos.addTodo("Learn TypeScript with baransel.dev"); myTodos.addTodo("Build awesome apps", new Date("2024-10-24"));
React を使用した TypeScript
TypeScript と React はピーナッツバターとゼリーのようなものです。簡単な例を次に示します:
interface Props { name: string; age: number; onSuperPower?: () => void; } const HeroCard: React.FC<props> = ({ name, age, onSuperPower }) => { return ( <div> <h2 id="name">{name}</h2> <p>Age: {age}</p> {onSuperPower && ( <button onclick="{onSuperPower}"> Activate Super Power! </button> )} </div> ); }; </props>
ヒントとコツ
- シンプルから始めましょう: 基本的なタイプから始めて、徐々に複雑なものを追加していきます。
- コンパイラーを使用する: TypeScript のコンパイラーはあなたの友人です - そのエラーに注意してください。
- 過剰に入力しないでください: 場合によっては、どれを入力しても問題ありません (ただし、慎重に使用してください)。
- 厳密モードを有効にする: 保護を最大限に高めるために、tsconfig.json に "strict": true を追加します。
よくある問題とその修正方法
// Problem: Object is possibly 'undefined' const user = users.find(u => u.id === 123); console.log(user.name); // Error! // Solution: Optional chaining console.log(user?.name); // Problem: Type assertions const input = document.getElementById('myInput'); // Type: HTMLElement | null const value = input.value; // Error! // Solution: Type assertion or type guard const value = (input as HTMLInputElement).value; // or if (input instanceof HTMLInputElement) { const value = input.value; }
まとめ
TypeScript は最初は余分な作業のように思えるかもしれませんが、バグが発生する前に発見するのに役立つスーパーパワーを持っているようなものです。小さなものから始めて、徐々に種類を増やしていけば、気づけばこれなしでどうして生きていたのかと不思議に思うことでしょう!
覚えておいてください:
- タイプはあなたの友達です
- コンパイラはあなたの相棒です
- 練習すれば完璧になります
以上がTypeScript: JavaScript のスーパーヒーロー ケープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

Matter.jsは、JavaScriptで書かれた2D Rigid Body Physics Engineです。このライブラリは、ブラウザで2D物理学を簡単にシミュレートするのに役立ちます。剛体を作成し、質量、面積、密度などの物理的特性を割り当てる機能など、多くの機能を提供します。また、重力摩擦など、さまざまな種類の衝突や力をシミュレートすることもできます。 Matter.jsは、すべての主流ブラウザをサポートしています。さらに、タッチを検出し、応答性が高いため、モバイルデバイスに適しています。これらの機能はすべて、物理ベースの2Dゲームまたはシミュレーションを簡単に作成できるため、エンジンの使用方法を学ぶために時間をかける価値があります。このチュートリアルでは、このライブラリのインストールや使用法を含むこのライブラリの基本を取り上げ、

この記事では、JQueryとAjaxを使用して5秒ごとにDivのコンテンツを自動的に更新する方法を示しています。 この例は、RSSフィードからの最新のブログ投稿と、最後の更新タイムスタンプを取得して表示します。 読み込み画像はオプションです

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック



