

interface Person {
name: string;
age: number;
greet(): void;
}
const person: Person = {
name: 'John',
age: 30,
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
};
person.greet(); // 출력: Hello, my name is John and I am 30 years old.
import "./styles.css";
import axios from "axios";
import { useEffect, useState } from "react";
import { Activity } from "../models/Activity";
function App() {
const [activities, setActivities] = useState<Activity[]>([]);
useEffect(() => {
axios
.get<Activity[]>("http://localhost:5007/api/activities")
.then((response) => {
setActivities(response.data);
console.log(response.data);
});
}, []);
return (
<div>
<h1>Reactivities</h1>
<ul>
{activities.map((activity) => (
<li key={activity.id}>{activity.title}</li>
))}
</ul>
</div>
);
}
export default App;

구조 분해(Destructuring)는 배열이나 객체의 속성을 추출하여 개별 변수로 할당하는 JavaScript의 문법
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const { name, age, city } = person;
console.log(name); // 'John'
console.log(age); // 30
console.log(city); // 'New York'
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const name = person.name;
const age = person.age;
const city = person.city;
console.log(name); // 'John'
console.log(age); // 30
console.log(city); // 'New York'


//import React from "react";
import ActivityList from "./ActivityList";
import { Grid } from "semantic-ui-react";
import { Activity } from "../../../app/models/Activity";
import ActivityDetails from "../details/ActivityDetails";
interface Props {
activities: Activity[];
}
export default function ActivitiyDashBoard({ activities }: Props) {
return (
<Grid>
<Grid.Column width="10">
<ActivityList activities={activities} />
</Grid.Column>
<Grid.Column width="6">
{activities[0] && <ActivityDetails activity={activities[0]} />}
</Grid.Column>
</Grid>
);
}
activities[0]이 존재할 때만 && 뒷 부분을 렌더링하라.function handleCreateOrEditActivity(activity: Activity) {
activity.id
? setActivities([
...activities.filter((x) => x.id !== activity.id),
activity,
])
: setActivities([...activities, activity]);
}
const [selectedActivity, setSelectedActivity] = useState<
Activity | undefined
>(undefined);
....
function handleSelectedActivity(id: string) {
setSelectedActivity(activities.find(x => x.id === id))
}
const [1., 2.] = useState[3.]
const [activities, setActivities] = useState(--)
setActivities([...activities, newActivity]);
activities.filter((x) => x.id !== activity.id);
npm install uuid
