“A型与B型没有共同特性”是什么意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“A型与B型没有共同特性”是什么意思?相关的知识,希望对你有一定的参考价值。

在将打字稿从2.3更新到2.6之后,我在几种打字中看到了这个错误。它究竟意味着什么?能给我举个例子 ?

编辑:我知道此消息表明错误的接口扩展/实现。我对no properties in common的含义更感兴趣。建议的问题显示了实现接口的类的示例。我所看到的是一个扩展另一个接口并改变其中一个属性类型的接口。它与消息有什么关系?

答案

TypeScript 2.4引入了对弱类型的更强检查,例如所有属性都是可选的接口。

假设我们有两个具有不同属性的弱类型:

interface A {
    a?: string;
}

interface B {
    b?: string;
}

let x: A = {};
let y: B = {};

请注意,xy都是空对象,满足各自的弱类型AB

现在,将A分配给B是错误的吗?

y = x;

TypeScript 2.4+说是的,这是一个错误:

Type 'A' has no properties in common with type 'B'.

这是一个简化的例子;你的打字文件肯定更复杂,但我希望这说明了错误的意图。如果您发布一些代码,我们可以进一步深入研究。

如果在您的情况下TypeScript的弱类型检查过于谨慎,则有一些变通方法,例如转换或使用索引签名:

https://blog.mariusschulz.com/2017/12/01/typescript-2-4-weak-type-detection

以上是关于“A型与B型没有共同特性”是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章

在这个 spark 代码片段中 ordering.by 是啥意思?

HTTP转换为null什么意思?

vue2.0 代码功能片段

array.splice = 是啥意思?

Bitcoin是什么意思

cv2.resize中的None是什么意思?