如何向基类型(比如数组)添加方法?在全局模块中,这将被识别

interface Array {
   remove(o): Array;
}

但实际的实施应该放在哪里呢?

推荐答案

您可以使用原型来扩展数组:

interface Array<T> {
    remove(o: T): Array<T>;
}

Array.prototype.remove = function (o) {
    // code to remove "o"
    return this;
}

如果你在一个模块内,你需要明确你指的是全球Array<T>,而不是在你的模块内创建本地Array<T>接口:

declare global {
    interface Array<T> {
        remove(o: T): Array<T>;
    }
}

Typescript相关问答推荐

如何让这个函数正确推断返回类型?

返回签名与其他类型正确的函数不同的函数

物料UI图表仅在悬停后加载行

如果在TypeScript中一个原始的类方法是递归的,如何使用类decorator 模式?

如何使用函数填充对象?

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

如何避免推断空数组

有没有可能产生输出T,它在视觉上省略了T中的一些键?

TypeScrip泛型类未提供预期的类型错误

从子类集合实例化类,同时保持对Typescript中静态成员的访问

TypeScrip错误:为循环中的对象属性赋值

如何使这种一对一关系在旧表上起作用?

TypeScrip-根据一个参数值验证另一个参数值

打字脚本中的模块化或命名空间

如何使用泛型函数参数定义类型脚本函数

TaskListProps[]类型不可分配给TaskListProps类型

如何在TypeScript中描述和实现包含特定属性的函数?

有没有一种简单的方法可以访问Keyboard Shortcuts JSON文件中列出的每个命令的显示名称(标题)?

Next 13 + React 18 createContext 类型的构建问题

React-Router V6 中的递归好友路由