typescript 函数重载的对象表示怎么用?

function createElement(
  tag: string
):string;
function createElement(
  tag: number
):number;
function createElement(tag: string | number) {
    return tag
}

上面的函数重载没有报错
在阮一峰文章中提到函数重载支持对象表示
https://wangdoc.com/typescript/function

type CreateElement = {
  (tag:string): string;
  (tag:number): number;
}

但是我这样使用发现报错

type CreateElement = {
  (tag:string): string;
  (tag:number): number;
}
let c: CreateElement = function createElement(tag: string | number) {
  return tag
}

请问一下这个对象表示的函数重载应该怎么使用?

阅读 3.1k
1 个回答
type CreateElement = {
    (tag: string): string;
    (tag: number): number;
}

function createElement(tag: string): string;
function createElement(tag: number): number;
function createElement(tag: string | number) {
    return tag
}

const f: CreateElement = createElement

重载要有分开的定义,直接联合类型是不对的

推荐问题
logo
Microsoft
子站问答
访问
宣传栏