typescript - 为什么必须声明 Typescript 的环境接口(interface)实现?

标签 typescript

我有一些接口(interface)及其实现的定义。有很多方法必须在每个实现类上声明。

我觉得它只是一个定义,既乏味又多余。是不是没有时间来实现这个功能,或者为什么应该强制执行环境实现定义背后的一些想法?还是我遗漏了什么?

更新

我现在不喜欢我的问题,它是从一个确定接口(interface)成员已实现的人的角度编写的,因为库所有者是这么说的。但是,如果我决定创建我自己的与其他人的库的接口(interface),我最好强制指定每个实现成员作为健全性检查。

最佳答案

假设您不必写出接口(interface)成员:

class Base { }
class Derived extends Base { }

interface Foo {
    method(t: number): Base;    
}

declare class FooImpl1 implements Foo {
    // Empty
}

declare class FooImpl2 implements Foo {
    public method(): Derived;
}

FooImpl2 试图声明一个额外的 method 重载,还是 FooImpl2 使用签名实现 method需要更少的参数并返回更多的派生类型?两者都是有效的解释。您必须为像这样的各种情况制定规则,以便程序员可以指定它们的实际含义,从而降低语言的可预测性。

关于typescript - 为什么必须声明 Typescript 的环境接口(interface)实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583231/

相关文章:

angular - 将两个小数位添加到数字 TypeScript Angular

node.js - 在 TypeScript 中使用 process.env

typescript - 如何在 TypeScript 中转换对象属性?

reactjs - 使用 TypeScript 将具有类型字段的数据对象映射到特定的 React 组件

javascript - 同一根上的路由器链接中的 Angular 6 冲突

reactjs - react 路由器 dom 和 Material UI : forwardRef issue

typescript :如何在 react 组件中设置 child 的类型?

TypeScript:类型推断不正确

typescript - Typescript 混合类上的类验证器装饰器

reactjs - react typescript : Line 0: Parsing error: Cannot read property 'name' of undefined