小编def*_*ant的帖子

映射具有未知深度的通用 TypeScript 接口

我有一个递归函数,它接受一个具有通用接口的对象。该函数遍历对象并创建一个具有几乎完全相同接口的新对象,除了端节点/叶子之外,它将它们转换为数字。该函数返回这个新对象,但我不知道如何给它正确的类型。

例子:

interface IOriginal
{
    prop1: string,
    prop2: number,
    prop3: {
        prop1: boolean,
        prop2: {
            prop1: number
        },
        prop3: string
    }
}

const input : IOriginal = {
    prop1: "somestring",
    prop2: 5,
    prop3: {
        prop1: true,
        prop2: {
            prop1: 2
        },
        prop3: "otherstring"
    }
}

function traverse<T>(obj: T)
{
    /* ... map the object ... */
    return mappedObj
}

const output = traverse(input)
Run Code Online (Sandbox Code Playgroud)

和输出的(映射对象的)界面应该看起来像

interface IOutput
{
    prop1: number,
    prop2: number,
    prop3: {
        prop1: number,
        prop2: {
            prop1: number
        }, …
Run Code Online (Sandbox Code Playgroud)

generics dictionary types typescript

4
推荐指数
1
解决办法
769
查看次数

标签 统计

dictionary ×1

generics ×1

types ×1

typescript ×1