如何检查 'type' 的字段是否在 TypeScript 中未定义?

How to check if a field of 'type' is undefined in TypeScript?

我在 TypeScript 中创建了一个 type,它有点复杂(里面有对象和映射)。

有没有办法检查这个类型是否有任何未定义的值,或者我应该遍历它的每一部分来检查它是否未定义?

typeof在这种情况下有用吗?

您可以为此使用验证库。

如果您想使用 类

,请查看 class-validator

或者类似 Joi 的东西,如果你想使用普通对象。

我已经创建了一个递归函数来检查一个对象及其属性,即使它有一个嵌套对象并且return一个boolean

function checkObjectsForUndefined(myObject:object | undefined):boolean
{ 

    if(myObject === undefined)
        return true;

    let result = false;

    let nestedObjectFlag = false;

    let attributes = Object.values(myObject);

    for(let i = 0;i<attributes.length;i++)
    {
        if(attributes[i] instanceof Object)
        {
            nestedObjectFlag = true;

            result = result || checkObjectsForUndefined(attributes[i])
        }

        else
        {
            if(!attributes[i])
                result = true; 
        }
    }

    if(nestedObjectFlag)
        return result;
    else
        return Object.values(myObject).some((value) => !value)
}