CRA 실행시
npx create-react-app ts-react-tutorial --template typescript
interface State{
name:string;
age:number;
}
class component extends React.Component<State> {
state:State = {
name: '',
age: 0
}
render()(
<div>hello Typescript<div>
)
}
import * as React from 'react';
interface CounterProps {
startNumber: number;
}
interface CounterState {
number: number;
}
class Counter extends React.Component<CounterProps, CounterState> {
public state = {
number: 0,
};
constructor(props: CounterProps) {
super(props);
this.state.number = props.startNumber;
}
public handleClick = () => {
this.setState({
number: this.state.number + 1,
});
};
public render() {
return (
<div>
<h1>{this.state.number}</h1>
<button onClick={this.handleClick}>Click Me</button>
</div>
);
}
}
export default Counter;
import React from 'react';
type GreetingsProps = {
name: string;
mark: string;
};
const Greetings = ({ name, mark }: GreetingsProps) => (
<div>
Hello, {name} {mark}
</div>
);
Greetings.defaultProps = {
mark: '!'
};
export default Greetings;
ex) React.ChangeEvent<HTMLInputElement>
const onChange: React.<HTMLInputElement> = (
e
) => {
const { name, value } = e.target;
setForm({
...form,
[name]: value,
});
};
https://react.vlpt.us/using-typescript/03-ts-manage-state.html
(...내용추가예정...)