77

次のようにjsxを定義したい:

<table style={{'--length': array.lenght}}>
   <tbody>
      <tr>{array}</tr>
   </tbody>
</table>

また、CSS で --length を使用しています。また、CSS 疑似セレクター (カウンター ハックを使用) を使用してカウントを表示する --count を持つセルもあります。

しかし、タイプスクリプトはエラーをスローします:

TS2326: Types of property 'style' are incompatible.
  Type '{ '--length': number; }' is not assignable to type 'CSSProperties'.
    Object literal may only specify known properties, and ''--length'' does not exist in type 'CSSProperties'.

CSS 変数 (カスタム プロパティ) を受け入れるようにスタイル属性のタイプを変更することは可能ですか、またはスタイル オブジェクトに強制する方法はありますか?

4

6 に答える 6

35

の定義にCSSProperties行くと、次のことがわかります。

export interface CSSProperties extends CSS.Properties<string | number> {
    /**
     * The index signature was removed to enable closed typing for style
     * using CSSType. You're able to use type assertion or module augmentation
     * to add properties or an index signature of your own.
     *
     * For examples and more information, visit:
     * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors
     */
}

Propertiesそのリンクは、 inの定義を拡張するcsstypeか、プロパティ名を にキャストすることによって、型エラーを解決する方法の例を示していますany

于 2018-08-25T00:50:04.167 に答える