Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数与属参数之差

数与属参数之差
EN

Stack Overflow用户
提问于 2020-09-12 02:21:56
回答 2查看 187关注 0票数 3

我正在用打字本写一个类,不知道如何区分泛型和数字类型参数。代码示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test<T> {
  remove(value: T): boolean;
  remove(index: number): boolean;
  remove(indexOrValue: T|number): boolean {
    if (typeof indexOrValue === "number") {
      /* What about new Test<number>() */
      const index = indexOrValue as number;
      this.items.splice(index, 1)
      return true;
    } else {
      const index = this.items.indexOf(indexOrValue as T)
      if (index > -1) this.items.splice(index, 1);
      return true;
    }
    return false;
  }
}

PS:我不知道这个问题,我在这里写,而不是搜索

EN

回答 2

Stack Overflow用户

发布于 2020-09-24 07:47:09

我也建议使用单独的方法路径,但是如果您正在寻找一个具有确切要求的解决方案,我想我已经通过检查数组中的项的类型找到了您想要的。

看一看代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test<T> {
    items: T[] = [];

    remove(value: T): boolean;
    remove(index: number): boolean;
    remove(indexOrValue: T|number): boolean {
        const length = this.items.length;
        if (length === 0) {
            return false;
        }
         
        const isArgumentNumber = typeof indexOrValue === "number";
        const isGenericTypeNumber = typeof this.items[0] === 'number';
        if (isArgumentNumber) {
            if (isGenericTypeNumber) {
                // TODO: When input and class both are number
            } else {
                // TODO: When input is number but class is not   
            }
        } else {
            // TODO: When input is not a number
        }
  }
}
票数 0
EN

Stack Overflow用户

发布于 2020-09-19 22:47:22

为了解决这个问题,而不是定义许多函数或构造函数(比如一些像c++这样的编程语言),只需定义一个函数或构造函数并使用switch-caseif-else来处理它。对于两种不同的类型,您可能希望实现两种不同的函数,但是管理非常容易,只需为每次使用创建两个函数,然后从remove()函数在switch-caseif-else中调用它们。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63859304

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文