export default function objectSample(){ const taro: { age: number lastName: string readonly firstName: string gender?: string } = { age: 38, lastName: "Yamada", firstName: "Taro" } taro.gender = "male"; taro.lastName = "Suzuki"; //taro.firstName = "Jiro"; const capitals: { [counrtyName: string]: string } = { Japan: "TOkyo", Korea: "Seoul" } capitals.China = "Beijing"; capitals.Canada = "Ottawa"; //console.log(capitals); type Country = { capital: string language: string name: string } const japan: Country = { capital: "Tokyo", language: "Japanese", name: "Japan" } const america: Country = { capital: "W.D.C", language: "English", name: "U.S.A" } // console.log(japan); // console.log(america); type Knight = { hp: number sp: number weapon: string swordSkill: string } type Wizard = { hp: number mp: number weapon: string magicSkill: string } type Adventurer = Knight | Wizard // 合併型: KnightとWizardどちらかの型を持つ type Paladin = Knight & Wizard // 交差型: KnightとWizardが持つ型を全て持っている // Knightの型を持つadventurer2 const adventurer1: Adventurer = { hp: 100, sp: 30, weapon: '木の剣', swordSkill: '三連斬り', } console.log('Object alias sample 3:', adventurer1) // Wizardの型を持つadventurer2 const adventurer2: Adventurer = { hp: 100, mp: 30, weapon: '木の杖', magicSkill: 'ファイヤボール', } console.log('Object alias sample 4:', adventurer2) // KnightとWizard両方の型を持つpaladin const paladin: Paladin = { hp: 300, sp: 100, mp: 100, weapon: '銀の剣', swordSkill: '三連斬り', magicSkill: 'ファイヤボール', } console.log('Object alias sample 5:', paladin) }
import objectSample from "./object/object" objectSample();