gpt4 book ai didi

typescript - 数字和通用参数之间的区别

转载 作者:行者123 更新时间:2023-12-05 08:05:43 29 4
gpt4 key购买 nike

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

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:这个问题我不是很清楚,我是写在这里而不是搜索

最佳答案

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

看一下代码:

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
}
}
}

关于typescript - 数字和通用参数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63859304/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com