Новичок в TypeScript и React здесь. Почему TypeScript не кричит на меня из-за того, что тип ввода constructor(foo: string)
не соответствует {foo: string}
? (Примечание: один из них — строка, другой — объект.)
TypeScript с радостью скомпилирует это, и, конечно же, полученный код взорвется. Я попытался включить все параметры, которые может предложить tsconfig.json. Я использую машинопись 2.5.3.
Есть ли способ, например, конфигурация машинописного текста, изменение кода или что-то еще, чтобы укрепить код, чтобы избежать этого? Любые идеи приветствуются, моя цель - написать стабильный код.
импортировать * как React из 'реагировать'; импортировать * как ReactDOM из 'react-dom';
class App extends React.Component<{ foo: string }, { foo: string }> {
// expects string
constructor(foo: string) {
super();
this.state = {
foo: foo
}
}
render() {
return <div>{this.state.foo}</div>
}
}
// Passes object { foo: string }
ReactDOM.render(<App foo="foo" />, document.getElementById('root'))
EDIT: упрощенный вопрос