小编Tre*_*anz的帖子

TypeScript 中具有条件类型返回类型的函数的最小实现

TypeScript 手册提供了以下使用条件类型而不是函数重载的示例:

https://www.typescriptlang.org/docs/handbook/2/conditional-types.html


interface IdLabel {
  id: number /* some fields */;
}

interface NameLabel {
  name: string /* other fields */;
}

type NameOrId<T extends number | string> = T extends number
  ? IdLabel
  : NameLabel;


function createLabel<T extends number | string>(idOrName: T): NameOrId<T> {
  throw "unimplemented";
}

let a = createLabel("typescript");
//  ^ = let a: NameLabel

let b = createLabel(2.8);
//  ^ = let b: IdLabel

let c = createLabel(Math.random() ? "hello" : 42);
//  ^ = …
Run Code Online (Sandbox Code Playgroud)

types conditional-statements typescript

8
推荐指数
1
解决办法
575
查看次数

标签 统计

conditional-statements ×1

types ×1

typescript ×1