2017-12-13 31 views
0

element.getBoundingClientRect()によって返されるオブジェクトのタイプを調べようとしていますが、MDN lists as "DOMRect"です。TypeScriptにDOMRectタイプがないのはなぜですか?

オブジェクトをコンソールにログすると、height、width、top、bottom、left、right、x、yというプロパティを持つDOMRectという名前が付けられます。しかし、DOMRectは、私が見ることのできるTypeScriptの型としては存在しません。

TypeScriptで最も近いタイプはClientRectですが、基本的には同じですが、 'x'と 'y'プロパティはありません。

また、タイプDOMRectInitが見つかりました。これは、DOMRectで、上/下/左/右がありません。

「x」と「y」が常に「左」と「上」のプロパティを反映していることに気付いたときに、この問題が解決されたという問題がありましたが、ここでは何が起こっていますか? TypeScriptが標準のブラウザAPIと揃っていないのはなぜですか?

また、「x」は常に「left」に等しく、「y」は常に「top」に等しいと考えるのが安全でしょうか?

答えて

1

TypeScript DOMタイプの宣言originate from this repoは、Microsoft Edgeブラウザで実装されているDOMのバージョンに基づいているようですが、ビルドプロセスでいくつかの変更が適用されています。

つまり、最新の標準やその他のブラウザの実装では、DOMの種類が最新でない可能性があります。 There is open issue about this process in generalですが、特定の定義が不足している場合は、そのタイプに関する問題をTypeScriptリポジトリにいつでも記録できます。

私は私の2番目の質問 in the MDN documentationに答えた
+0

ああ、私は常にTypeScriptがMicrosoftによって開発されたことを忘れています。今それはすべて感謝します、ありがとう! – dukeluke

1

:幅が

負であれば[トップ]と同じ値を持つ

[左]幅Xと同じ値を持っている、またはX +高さが負の場合、Y、またはY +高

だから、基本的に、それは「X」「幅」が負でない限り「左」と同じであると仮定する安全です。

関連する問題