Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 扩展接口中是否可能缺少可选字段?_Typescript_Typescript1.8 - Fatal编程技术网

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!