函数中动态构造对象的窄返回类型

时间:2020-10-21 15:01:56

标签: typescript

我具有以下构造函数

function make(x: string) {
     const result: { [k: string]: any } = {};
     result[x] = true
     result.kind = x
     return result
}

按照以下用法使用

let a = make("A")

将创建一个“类型”对象

{
    A: true,
    kind: "A"
}

,并且与“ B”一起使用

let b = make("B")

将创建一个“类型”对象

{
    B: true,
    kind: "B"
}

现在ab都将是any类型,而没有类型签名。但是,我想有一个比任何其他类型更具体的返回类型。类似于

function make(x: string): { $x-val: bool; kind: $x-val } { ....

有什么可能吗?

1 个答案:

答案 0 :(得分:1)

以下类型描述可解决问题

RightCodes