だが、私はこのようになりますコンポーネントCard
を、持っているとしましょうinjectIntl()でコンポーネントを反応させるのラップ後に失われますtitle
。属性の型チェックが
<Card title="Example" />
私はreact-intl
からinjectIntl()
と、このコンポーネントをラップする必要があり、そうintl
コンテキストが注入されます。私はそのようにこれを行う:
import * as React from 'react';
import {injectIntl} from 'react-intl';
interface Props {
title: string;
}
class Component extends React.Component<Props, null> {
// ..
}
export const Card = injectIntl(Component);
は今、私は属性title
なしCard
コンポーネントを使用することができます。
<Card />
これは、typescriptコンパイラでは問題ないようです。ランタイムエラーもありません。私はコンパイラが次のようなエラーをスローすることを期待していました:
Property 'title' is missing in type '{}'.
この動作の原因はどこですか?なぜそれはこのようなものですか?この問題を解決するには?
ありがとうございます!
ありがとう@トマシュ!あなたの答えは正しい方向に私を指摘しました。実際に私は型をインストールしなかったので、typescriptはコンパイル時に何を検証するのか分からなかった。多分あなたはそのヒントを使ってあなたの質問を更新できますか? https://www.npmjs.com/package/@types/react-intl – Robin
@Robin回答が更新されました。いいキャッチ!私は、Typescriptにタイプ注釈の外部リポジトリがあることを忘れていました。 –