【问题标题】:TypeScript: use of generic and union typesTypeScript:使用泛型和联合类型
【发布时间】:2015-04-03 01:03:18
【问题描述】:

我有使用函数重载的代码,例如:

function f0(v: Object): void { }

function f1(a: number, b: number): void;
function f1(a: string, b: string): void;
function f1(a: any, b: any): void {
    f0(a); // OK
}

我想使用联合类型进行转换,但出现错误:

function f1<T extends number | string>(a: T, b: T): void {
    f0(a); // Error: Argument of type 'T' is not assignable to parameter of type 'Object'.
}

这里出了什么问题,知道下面的就OK了:

function f2(v: number | string) {
    f0(v);
}
function f3<T extends number>(v: T) {
    f0(v);
}
function f4<T extends string>(v: T) {
    f0(v);
}

【问题讨论】:

    标签: typescript1.4


    【解决方案1】:

    我终于问了MS,这似乎是一个错误:https://github.com/Microsoft/TypeScript/issues/2576

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2020-07-31
      • 2021-06-05
      • 2020-04-12
      • 1970-01-01
      • 2020-12-16
      • 2021-02-26
      • 2020-04-14
      • 2019-08-01
      相关资源
      最近更新 更多