如果要 类的泛型只能是指定的几种类型,为什么不用联合类型呢 ?

来源:4-7 类中的泛型以及泛型类型

摔跤手

2022-02-04

有三个问题:

  1. 如果要 类的泛型只能是指定的几种类型,为什么不用联合类型呢 ?

  2. 使用 T extends string | number来指定 T 的泛型只能是 string 和 number 是常见的手法吗 ? 这么做是合理的吗 ?

  3. TypeScript 中 String 与 string, Number 与 number 的区别是什么呢 ?下面的写法有什么问题吗 ?

class DataManager<T extends String | Number> {
  constructor(private data: T[]) {}
  getItem(index): T | undefined {
    return this.data[index];
  }
}

interface Test extends String {}

const data = new DataManager<Test>(["1"]);
console.log(data.getItem(0));
写回答

1回答

Dell

2022-02-07

  1. 范型可不是集中,理论上是无穷无尽的参数,而联合类型才是课枚举的

  2. 这个是个例子,没必要这么写

  3. 大小写这个稍等,我看下文档把准确的部分发出来

0
0

专为小白设计的TypeScript入门课

Dell老师专为TypeScript小白打造的,全栈式教学TS入门课程

2249 学习 · 506 问题

查看课程