playgroundは上に貼っています
ざっくり言いますと
typescript
1interface Hoge { 2 id: number 3} 4 5interface XHoge extends Hoge { 6 mail?: string 7} 8 9declare let hoge: Hoge; 10declare let xhoge: XHoge; 11 12xhoge = hoge; // OK 13 14declare let hoges: Hoge[]; 15declare let xHoges: [XHoge, ...Hoge[]]; 16 17// xHoges = hoges; //oops error happens 18 19 20// xHoges = [ 21// { 22// id : 1 23// }, 24// { 25// id: 2 26// } 27// ] OK 28
これで
typescript
1xHoges = hoges;
でコンパイルエラーが生じます、tsは構造的部分型システムに乗っかっていると理解しているので、上記のコンパイルエラーが生じる理由がわかっていません(シンプルにバグかも?)
こういうことについて, これは結構ぶち当たるデベロッパー多そうで誰かがissue出してワークアラウンドとなんでこうなっているか紹介されてるでしょと思っていましたが,見当たらなくて困っています
誰か該当issueをご存知の方は教えていただきたいです
(またtscにdeep diveしたよという方がいらっしゃればどこでどういう実装をどういう思想のもと行ってこうなっているかも追記していただけると助かります)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/13 08:54