type A = 'a1' | 'a2'
type Rt1 = string
type Rt2 = number
function foo(a: A) {
return // ...
}
如果 foo('a1')
返回类型为 Rt1,如果 foo('a2')
返回类型为 Rt2。请问如何定义这个返回类型?
type A = 'a1' | 'a2'
type Rt1 = string
type Rt2 = number
function foo(a: A) {
return // ...
}
如果 foo('a1')
返回类型为 Rt1,如果 foo('a2')
返回类型为 Rt2。请问如何定义这个返回类型?
你可能需要的是重载
export function foo(a: 'a2'): number;
export function foo(a: 'a1'): string;
export function foo(a: 'a1' | 'a2'): string | number {
return // ...
}
const v1 = foo('a1'); // v1 is string
const v2 = foo('a2'); // v2 is number
这样???
function foo(a: A) : Rt1 | Rt2{
if(a=='a1'){
return 12
}else{
return 'hello'
}
}