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
}
请问一下这个对象表示的函数重载应该怎么使用?
回复
1个回答
test
2024-06-28
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
重载要有分开的定义,直接联合类型是不对的
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容