#generics #reactjs #typescript #jsx #typescript2.0
#дженерики #reactjs #typescript #jsx #typescript2.0
Вопрос:
Я немного смущен тем, почему это не работает. Может кто-нибудь, пожалуйста, объяснить, почему plans
в PricingComponent не подразумевается ввод текста из определенного интерфейса.
import * as React from 'react';
import Plans from '../data/Plans';
interface PricingProps {
plans: {
[index: number]: {
id: number,
unitLimit: string,
ownerLimit: string,
storageLimit: string,
};
};
}
const Pricing: React.StatelessComponent<any> = () => <PricingComponent plans={Plans} />;
const PricingComponent: React.StatelessComponent<PricingProps> = ({ plans }) =>
<div />;
Комментарии:
1. Какую версию TS вы используете? Это работает для меня на @ 2.0.3. Кроме того, где вы получаете типизацию react?
2. @Paarth да, я тоже использую 2.0.3. Я использую
noImplicitAny
tsconfigcompilerOptions
prop, который заставляет его жаловаться на то, что он неявно вводится как any . Я просто предположил, что тип может быть выведен.3. Вот что меня смущает. У меня тоже есть
noImplicitAny
, и он все еще работает для меня — вот почему я заинтересован в вашемreact.d.ts
. Кроме того, возможно ли, что ваш редактор (возможно, vscode?) Использует 1.8.5 или какую-либо другую версию TS?4. @Paarth Я использую определение DefinitelyTyped @types для React 0.14.43. Однако я скажу, что в настоящее время в моем проекте есть некоторые другие ошибки, которые я пытаюсь устранить, связанные с тем, что определения react не найдены. Возможно, это связано…
ERROR in ~/node_modules/@types/react-router/lib/applyRouterMiddleware.d.ts (4,43): error TS2305: Module '"~/node_modules/react/react".export=' has no exported member 'Props'.
У меня около 100 из этих различных ошибок, связанных с наборами, что довольно ясно, что они не загружаются должным образом.