2016-10-25 11 views
0

私は.tsxファイルでSVG use elementを使用したい:私は直接電話を反応させるために、これをtranspilingてる不足しているJSXタイプを宣言/無視するにはどうすればよいですか?

<mask id="mask1"> 
    <use ... /> 
</mask> 

。私は、この要素は、標準のlib定義から欠落していると信じて

Property 'use' does not exist on type 'JSX.IntrinsicElements'.

のVisual Studio 2015のCommunity Edition

:しかし、私は次のエラーを受信し続けます。どのように私はクラスや変数を宣言することができますかと同様に、TypeScriptコンパイラでこの型を宣言できますか?通常のdeclare vardeclare classステートメントは効果がありません。

これが不可能な場合、どうすればタイプスクリプトコンパイラを作成できますかは無視しますこのエラーはありますか?

<mask id="mask1"> 
    {React.createElement("use", { ... })} 
</mask> 

これはかなりないですが、それは仕事を取得し、コンパイル済みの出力は基本的に同じである:

答えて

0

I'm transpiling this to React calls directly

回避策の一つは、直接React.createElementを使用しています。

0

useと他のSVG要素がこの執筆時点でTSのJSX定義に追加されているので、受け入れられた答えの回避策はもはや必要ありません。カスタム要素(Webコンポーネント、さまざまなUIフレームワークなど)は、次の手順に従います。

  1. .d.tsファイルを作成します。

    宣言モジュールJSX { インタフェースIntrinsicElements { 「いくつかのカスタム要素」:私は

  2. tsconfig.jsonと同じフォルダに地雷を置くように、このファイルへのあなたの定義を追加したい任意の。 }}

.d.tsファイルが自動的にTSによって発見され、その後、それは文句を停止します。 TSサーバーを再起動して変更を取得する必要がありました。

関連する問題