扩展接口中是否可以缺少可选字段?

时间:2016-03-09 10:49:33

标签: typescript typescript1.8

假设:

interface A 
  { a : number
  , b : string  }

interface O // optional additional field
  { a : number
  , opt? : string  };

我希望A不能被视为O的扩展名。我理解opt字段是可选的,但我将它解释为" O的值选择为opt,但扩展O的接口必须具有完全相同的基本结构"。这个假设我错了吗?

Typescript似乎这么认为,至少考虑到这个测试(仅对Typescript 1.8 +有效):

function assertSubType<T extends U, U>(x: T, y: U):void { };

assertSubType(<A>null,<O>null); // does not give an error!
PS:我已经提出了同样的问题here,但随后我发现这可能更像是我对打字稿原则的误导。

0 个答案:

没有答案