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
子站问答
访问
宣传栏