相关疑难解决方法(0)

为什么接口中的这​​个箭头函数无法编译?

箭头函数常规函数在实现接口方面有什么区别,使得代码A导致编译时错误而代码B编译成功。

注意:在tsconfig.json所有严格类型检查选项均已启用的情况下,包括strictFunctionTypes,顺便说一句,它认为通过启用strict所有严格类型检查选项即可启用。

导致编译时错误的代码A

interface SomeInterface {
    someFunction: (par1: string | undefined) => string;
}

class SomeClass implements SomeInterface {
    someFunction(par1: string): string    //invalid function signature
    {
        throw new Error('Method not implemented.');
    }
}
Run Code Online (Sandbox Code Playgroud)

并且,代码B编译成功。

interface SomeInterface {
    someFunction(par1: string | undefined): string;
}

class SomeClass implements SomeInterface {
    someFunction(par1: string): string    //invalid function signature
    {
        throw new Error("Method not implemented.");
    }
}
Run Code Online (Sandbox Code Playgroud)

游乐场链接

oop typescript typescript-typings

9
推荐指数
1
解决办法
841
查看次数

TypeScript 中的方差、协方差、逆变和双方差的区别

您能否使用小而简单的 TypeScript 示例来解释什么是方差、协方差、逆变和双方差?

[持续更新]

有用的链接:

  1. Oleg Valter 的另一个与该主题相关的好答案

  2. Titian-Cernicova-Dragomir对*-rianance 的很好解释

  3. 斯蒂芬博耶博客

  4. Scala 文档- 用例子很好的解释

  5. @Titian 的回答 1

  6. @Titian 的回答 2

  7. Vlad Riscutia 的博客

  8. 马克西曼的文章

covariance contravariance variance typescript invariance

4
推荐指数
1
解决办法
250
查看次数