2017-10-12 2 views
1

私のアプリケーション(npm 5.4.2、反応する15.4、typescript 2.5.3、webpack 2.2.1、webpack-dev-server 2.4.1)で次のエラーが発生します。タイプ 'string'をタイプ "inherit"に割り当てることはできません。 "初期" | "unset" | "固定" | "絶対" | "静的" | "相対" | "sticky" '

これは動作します:

const mystyle = { 
    position: 'absolute'    
} 

<div style={mystyle}>not working</div> 

コンパイルエラーがある:

<div style={{position: 'absolute'}}>working</div> 

これはコンパイルされません

ERROR in ./src/components/Resource.tsx 
(61,18): error TS2322: Type '{ style: { position: string; }; children: string; }' is not assignable to type 'DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>'. 
    Type '{ style: { position: string; }; children: string; }' is not assignable to type 'HTMLAttributes<HTMLDivElement>'. 
    Types of property 'style' are incompatible. 
     Type '{ position: string; }' is not assignable to type 'CSSProperties'. 
     Types of property 'position' are incompatible. 
      Type 'string' is not assignable to type '"inherit" | "initial" | "unset" | "fixed" | "absolute" | "static" | "relative" | "sticky"'. 
webpack: Failed to compile. 

しかしwhat't違いは? 私はそれを修正することができます:

const mystyle = { 
    position: 'absolute' as 'absolute'    
} 

が、これは良い解決策ですか?

他のスタイル/ CSSプロパティでこの問題はありません。

私はgithubの上で同様の問題が見つかりました: https://github.com/Microsoft/TypeScript/issues/11465 をしかし右のそれを理解すれば、それはealierバージョンではtypescriptですバグでした。

助けてください。

答えて

2

これは回避策ですが、問題ありません。 他のいくつかの解決策は以下のとおりです。

const mystyles = { 
    position: 'absolute', 
} as React.CSSProperties; 

このissueが解決されるとき、あなたが戻って確認することができます。 TS 2.6の周りには、マイルストーンで判断すると思います。

+0

ありがとう、私は同じコンパイルエラーを取得します。しかし、あなたの答えは役に立ちましたので、今私はTS 2.6を待たなければならないことを知っています... – gfjr

+1

私の更新されたスナップはあなたにコンパイルエラーを与えません。それでもやはり同じ回避策の別の形です: - \ –

+0

更新されたものが動作し、私の回避策よりも綺麗です。 :o) – gfjr

関連する問題