在对象{typescript}中键入条件函数



如何在对象中键入条件函数?

let obj = {
function myfunc (input: string): number;
function myfunc (input: number): string;
myfunc: function (input: string|number):string|number {
...
}
}

不起作用,它给了我语法错误,我也尝试了多种方法,但它们都给出了语法错误

我尝试的一些例子:

let obj = {
myfunc (input: string): number;
myfunc (input: number): string;
myfunc: function (input: string|number):string|number {
...
}
}
let obj = {
function myfunc (input: string): number;
function myfunc (input: number): string;
myfunc: function (input: string|number):string|number {
...
}
}
let obj:{
function myfunc (input: string) : number;
function myfunc (input: number) : string;
myfunc: (input: string|number) => number|string
} = {
myfunc: function (input: string|number):string|number {
return ""
}
}

下面的方法就可以了。在对象内部声明类型定义时出现问题。只需将其拆分为一种新的接口类型,就可以开始了。

interface MyObj {
myfunc (input: string): number;
myfunc (input: number): string;
}

let obj: MyObj = {
myfunc: (input: any): any => {
return 1;
}
}

打字脚本中的某个人给了我一个非常有效的解决方案:

let obj = {
myfunc: (() => {
function myfunc (input: string):number;
function myfunc (input: number):string;
function myfunc (input: string|number): number|string {
let a = input // string|number
return a
}
return myfunc
})()
}
obj.myfunc(0) // string
obj.myfunc("hello") // number

最新更新