footer: @sir_tilbrook
npm install -g typescript tslint
ts init
tslint init
// tsconfig.json
{
"compilerOptions": {
"target": "es2015",
"module": "es2015",
"jsx": "react",
"jsx": "react-native",
…
}
}
// tslint.json
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {},
"rules": {
"interface-over-type-literal": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}
vim app.tsx
type IProps = { name: string; }
interface IState { name: string; formError: string }
class App extends Component<IProps, IState> {
…
}
class App extends Component<IProps, IState> {
public state: IState = {
name: this.props.name,
formError: "",
};
}