TypeScript インターフェイスで配列を定義する
- 新しいプロジェクトを作成する
- TypeScript 構成ファイルの生成
- データの JSON ファイルを作成する
-
Bookクラスを定義する - ブックの配列のインターフェイスを定義する
- 配列を使用して JSON データを使用する
- まとめ
JSON データのオブジェクト表現を作成することは、NoSQL データベースを使用する開発者にとって一般的な開発アプローチです。 これは、NoSQL データベースが JSON を使用してデータを保存するためです。
これらのデータは、データの状態に応じて、文字列、数値、カスタム オブジェクトなど、さまざまな種類のデータ型を使用してプログラミング言語で表すことができます。
このチュートリアルでは、インターフェイスで配列を作成し、この配列に JSON ファイルに保存されたデータを入力する方法を学習します。 JSON ファイルにはデータの配列が含まれており、これらのデータはアプリケーションのカスタム TypeScript オブジェクトにマップされます。
新しいプロジェクトを作成する
WebStorm IDEA を開き、File > New > Project を選択します。 開いたウィンドウの左側にある Node.js を選択し、プロジェクト名を untitled から array-of-strings に変更するか、任意の名前を入力します。
node ランタイム環境は、プロジェクトを作成する前にインストールして、Node interpreter および Package manager セクションが自動的に入力されるようにする必要があります。 最後に、Create ボタンを押してプロジェクトを生成します。
TypeScript 構成ファイルの生成
プロジェクトが生成されたら、キーボード ショートカット ALT+F12 を使用して新しいターミナル ウィンドウを開き、次のコマンドを使用して tsconfig.json ファイルを生成します。
~/WebstormProjects/array-of-strings$ tsc --init
tsconfig.json を開き、プロパティ noEmitOnError: true および resolveJsonModule: true を追加します。 最初のプロパティは、トランスパイル エラーが発生した場合に JavaScript ファイルが生成されるのを防ぎます。2 番目のプロパティは、データを含む JSON ファイルを読み取ることを許可します。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noEmitOnError": true,
"resolveJsonModule": true,
"strict": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
}
データの JSON ファイルを作成する
array-of-strings フォルダーの下に books.json という名前のファイルを作成し、次の JSON データをコピーしてファイルに貼り付けます。
[
{
"name": "Introduction to Java",
"author": "john doe"
},
{
"name": "Advanced databases",
"author": "peter parker"
}
]
JSON データはオブジェクトの配列を保持し、各オブジェクトにはプロパティ name と author があります。 簡単に言えば、JSON データ内の各オブジェクトは、次のセクションで定義される Book インスタンスを表します。
Book クラスを定義する
array-of-strings フォルダーの下に Book.ts という名前のファイルを作成し、次のコードをコピーしてファイルに貼り付けます。
class Book{
constructor(private name: string,private author: string) {
this.name = name
this.author = author
}
}
このコードでは、プロパティ name と author を持つ Book クラスを定義しました。これらは JSON データの同じプロパティです。 次のセクションでは、Book クラスを使用して、インターフェイスで書籍の配列を定義します。
ブックの配列のインターフェイスを定義する
array-of-books フォルダーの下に BookService.ts という名前のファイルを作成し、次のコードをコピーしてファイルに貼り付けます。
export interface BookService{
books: Book[];
}
このファイルでは、books という名前を使用して本の配列を定義する BookService という名前のインターフェイスを作成しました。 このインターフェイスを実装するクラスは、books 配列を実装する必要があることに注意してください。次のセクションでは、これがどのように行われるかを示します。
配列を使用して JSON データを使用する
array-of-books フォルダーの下に BookServiceImpl.ts という名前のファイルを作成し、次のコードをコピーしてファイルに貼り付けます。
import bookSource from "./books.json"
import {BookService} from "./BookService";
class BookServiceImpl implements BookService{
books: Book[] = JSON.parse(JSON.stringify(bookSource));
logBooks(): void{
this.books.forEach(book => console.log(book));
}
}
function main(){
const bookService = new BookServiceImpl();
bookService.logBooks();
}
main();
このファイルでは、BookService を実装する BookServiceImpl という名前のクラスを作成しました。 books 配列を実装する必要があることに注意してください。これは、前のセクションで説明した要件です。
配列は books.json ファイルのデータを使用し、bookSource という名前の import ステートメントを使用してデータにアクセスします。 stringify() メソッドは bookSource を JSON 文字列に変換し、parse() メソッドは返された JSON 文字列を使用して本の配列を作成します。
logBooks() メソッドは、forEach() メソッドを使用して、テスト目的で書籍オブジェクトの配列をコンソールに記録します。 main() メソッドは BookServiceImpl クラスのインスタンスを生成し、このインスタンスを使用して logBook() メソッドを呼び出します。
次のコマンドを使用してこのコードを実行します。
~/WebstormProjects/array-of-strings$ tsc && node BookServiceImpl.js
tsc コマンドは TypeScript ファイルを JavaScript ファイルにトランスパイルし、node コマンドは BookServiceImpl.js ファイルを実行します。 出力が次のようになっていることを確認します。
{ name: 'Introduction to Java', author: 'john doe' }
{ name: 'Advanced databases', author: 'peter parker' }
まとめ
この記事では、TypeScript インターフェースで配列を定義し、配列を使用して JSON ファイルからデータを使用する方法を学びました。 ユーザーと対話するアプリケーションを開発する場合、通常はファイルではなくデータベースを使用することに注意してください。
このチュートリアルではカスタム オブジェクトを使用しましたが、文字列、数値など、他の型を使用することもできます。
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub