Я использую VS2013 и получаю существующий проект, настроенный для использования React (0.14) и Typcript (1.8.5). Мой код React отлично работает как JSX-файл. У меня есть одна ошибка в моем новом TSX-файле, который я не могу понять.Передача реквизита дочернему компоненту в реакторе, с помощью Typcript (TSX-файл)
У меня есть 30 нечетных ошибок на каждом проп приклеен к компоненту вниз дерева - это все читали:
Свойство «nameOfProp» не существует на типе «IntrinsicAttributes & IntrinsicClassAttributes> & {} & {детей ?: Reac ... '.
Вот пример кода, который расстраивает TypeScript. Любая помощь будет принята с благодарностью, поскольку это является одним из последних препятствий, которые возникают и работают с React in production. Примечание: Я не включил информацию о состоянии приложения, чтобы сэкономить место, но красные линии только на имена дочерних компонентов (фильтр, имя, идентификатор, количество)
var App = React.createClass({
render: function() {
render (
<FilterItem
filter={this.state.artifactFilter}
count={this.state.count}
id={this.state.id}
name={this.state.name}
/>
)
}
});
var FilterItem = React.createClass({
render: function() {
return (
<span>{this.props.name} ({this.props.count})</span>
)
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>
Спасибо так много! Я экспериментировал с интерфейсом, но не правильно. Теперь это работает. Таким образом, нет возможности сохранить свободное определение пропеллера? Я должен всегда выполнять декларацию интерфейса, даже если мне нравится иметь нестандартный TSX-файл? – Simon
Вы всегда можете использовать 'any, any' для' T, S', но тогда вы потеряете безопасность типа. В этом случае компилятор не может вывести правильные типы. На мой взгляд, использование классов проще, более читаемо и просто имеет смысл, а затем добавление дженериков также не кажется избыточным. –