Typescript 扩展接口中是否可能缺少可选字段?
鉴于: 我希望Typescript 扩展接口中是否可能缺少可选字段?,typescript,typescript1.8,Typescript,Typescript1.8,鉴于: 我希望A不能被视为O的扩展。我知道,opt字段是可选的,但我将其解释为“一个值O的opt是可选的,但是扩展O的接口必须具有完全相同的基本结构”。我的假设错了吗 Typescript似乎是这么认为的,至少考虑到这个测试(仅在Typescript 1.8+上有效): 函数assertSubType(x:T,y:U):void{}; assertSubType(),但我突然想到,这可能更多地是我对typescript原则的误解 interface A { a : number , b
A
不能被视为O
的扩展。我知道,opt
字段是可选的,但我将其解释为“一个值O的opt是可选的,但是扩展O的接口必须具有完全相同的基本结构”。我的假设错了吗
Typescript似乎是这么认为的,至少考虑到这个测试(仅在Typescript 1.8+上有效):
函数assertSubType(x:T,y:U):void{};
assertSubType(),但我突然想到,这可能更多地是我对typescript原则的误解
interface A
{ a : number
, b : string }
interface O // optional additional field
{ a : number
, opt? : string };
function assertSubType<T extends U, U>(x: T, y: U):void { };
assertSubType(<A>null,<O>null); // does not give an error!