2017-12-21 7 views
1

typescriptを2.3から2.6にアップデートした後、いくつかの入力でこのエラーが発生します。実際にはどういう意味ですか?あなたは私に例を挙げることができますか?「タイプAはタイプBと共通のプロパティを持たない」とはどういう意味ですか?

編集: このメッセージは誤ったインターフェイス拡張/実装を示していることを理解しています。私はno properties in commonの意味でもっと面白いです。提案された質問は、インターフェイスを実装するクラスの例を示しています。私が見たことは、別のインタフェースを拡張し、プロパティの1つのタイプを変更するインタフェースです。メッセージとは何が関係していますか?

+0

可能な重複がでプロパティがありませんタイプ 'Y'と共通)](https://stackoverflow.com/questions/46449237/type-x-has-no-properties-in-common-with-type-y) – Pac0

答えて

3

タイプスクリプト2.4は、弱いタイプのより強いチェックを導入しました。すべてのプロパティがオプションのインターフェイスです。

interface A { 
    a?: string; 
} 

interface B { 
    b?: string; 
} 

let x: A = {}; 
let y: B = {}; 

お知らせxyの両方がそれぞれの弱いタイプABを満たす空のオブジェクトであること:

は、我々は異なる特性を持つ2つの弱いタイプがあるとします。

ここでABに割り当てるのは間違いですか?

y = x; 

活字体は2.4+はい、これは間違いであると言う:

Type 'A' has no properties in common with type 'B'. 

これは簡単な例です。あなたの入力ファイルは確かにより複雑ですが、私はこれがエラーの意図を示すことを願っています。いくつかのコードを投稿すれば、さらに詳しく調べることができます。

活字体の弱い型チェックはあなたのケースでオーバー慎重されている場合は、キャスティングやインデックスの署名を使用するなどの回避策があります:[タイプ「X」の

https://blog.mariusschulz.com/2017/12/01/typescript-2-4-weak-type-detection

関連する問題