まとめ:オブジェクトの構造定義
CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 44/73。
チャレンジ
簡単以下のプロパティとメソッドを持つ Computer という名前のインターフェースを作成してください:
id:number型 (readonly)brand:string型ramInGB:number型 (任意)isLaptop:boolean型boot: 引数なし、戻り値voidのメソッド
以下のプロパティとメソッドを持つ Server という名前のインターフェースを作成してください:
hostname:string型 (readonly)operatingSystem:string型maxConnections:number型 (任意)isOnline:boolean型restart: 引数なし、戻り値voidのメソッドgetStatus: 引数なし、戻り値stringのメソッド
作成したインターフェースを使用して、以下の変数を作成してください:
workstationという名前のComputer型の変数を作成します。id は1001、brand は"Dell"、ramInGB は16、isLaptop はfalseとし、bootメソッドは"Dell workstation is booting up..."と出力するようにします。laptopという名前のComputer型の変数を作成します。id は1002、brand は"MacBook"、isLaptop はtrueとし、bootメソッドは"MacBook laptop is starting..."と出力するようにします。webServerという名前のServer型の変数を作成します。hostname は"web-01"、operatingSystem は"Ubuntu"、maxConnections は1000、isOnline はtrueとし、restartメソッドは"Restarting web-01 server..."と出力し、getStatusメソッドは"web-01 is online"を返すようにします。
checkComputerSpecs という名前の関数を作成してください。この関数は Computer 型のパラメータを受け取り、string を返します。関数は、コンピュータのブランドとタイプを "[brand] [laptop/desktop]" の形式で返す必要があります(isLaptop が true の場合は "laptop" を、そうでない場合は "desktop" を使用してください)。
getServerInfo という名前の関数を作成してください。この関数は Server 型のパラメータを受け取り、"[hostname] runs [operatingSystem]" の形式で string を返します。
以下の出力を別々の行に表示してください:
workstationのbootメソッドを呼び出すlaptopのbootメソッドを呼び出すworkstationを引数にしてcheckComputerSpecsを呼び出し、その結果を出力するlaptopを引数にしてcheckComputerSpecsを呼び出し、その結果を出力するwebServerのgetStatusメソッドを呼び出し、その結果を出力するwebServerを引数にしてgetServerInfoを呼び出し、その結果を出力するworkstationの id を出力するwebServerのrestartメソッドを呼び出す
自分で試してみよう
// TODO: ここにコードを書いてください
// 必要なプロパティとメソッドを持つComputerインターフェースを作成します
// 必要なプロパティとメソッドを持つServerインターフェースを作成します
// workstation、laptop、webServer変数を作成します
// checkComputerSpecs関数とgetServerInfo関数を作成します
// 必要なすべての出力を表示しますIntroduction To TypeScriptのすべてのレッスン
2基本の型
基本の型: str, num, boolean'any' 型: 脱出ハッチ'unknown' 型'null' と 'undef' の扱い型推論の実践明示的な型アノテーションまとめ:基本の型の演習5型:エイリアス、ユニオン型、インターセクション型
プリミティブ型の型エイリアスユニオン型 ('|')ユニオン型の扱い方リテラル型インターセクション型 ('&')型エイリアスの組み合わせまとめ:高度な型の組み合わせ自分で練習してみよう: TypeScriptプレイグラウンド