相关疑难解决方法(0)

测试是否存在嵌套的JavaScript对象键

如果我有一个对象的引用:

var test = {};
Run Code Online (Sandbox Code Playgroud)

可能(但不是立即)有嵌套对象,如:

{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)

在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?

alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.

我现在正在做这样的事情:

if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
    alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法.

javascript nested properties object

616
推荐指数
19
解决办法
21万
查看次数

打字稿是否支持?运营商?(而且,它叫什么?)

Typescript目前(或有计划)支持安全导航操作员?.

即:

var thing = foo?.bar
// same as:
var thing = (foo) ? foo.bar : null;
Run Code Online (Sandbox Code Playgroud)

此外,这个运营商有一个更常见的名称(它很难谷歌).

typescript

255
推荐指数
8
解决办法
13万
查看次数

TypeScript 中的可选链(Elvis 运算符)是什么?它是如何工作的?

我试图了解什么是可选链(Elvis 运算符)以及它是如何工作的,以及它在 TypeScript 中的用途是什么?

public static getName(user: IUser){
    if(user.firstName != null && user.firstName != ""){
        return user.firstName;
    }

    if(user.lastName != null && user.lastName != ""){
        return user.lastName;
    }

    return user.username;
}
Run Code Online (Sandbox Code Playgroud)

例如,我可以对上面的代码应用可选链以使其更短吗?

-编辑-

评论后用代码更新了问题。

export interface IUser {
    id: string;
    firstName: string;
    lastName: string;
    username: string;
}
Run Code Online (Sandbox Code Playgroud)

typescript

9
推荐指数
2
解决办法
6916
查看次数

React JS/Typescript中的空合并运算符

我们有Null合并操作符.NET,我们可以使用如下

string postal_code = address?.postal_code;
Run Code Online (Sandbox Code Playgroud)

我们可以在React JS中做同样的事情吗?

我发现我们可以使用&&运算符

address.ts文件中

string postal_code = address && address.postal_code;
Run Code Online (Sandbox Code Playgroud)

我需要什么样的.net功能可以在typescript中使用react JS,这可能吗?

就像是:

string postal_code = address?.postal_code // I am getting the error in this line if I try to use like .NET
Run Code Online (Sandbox Code Playgroud)

.net javascript null-check typescript reactjs

7
推荐指数
2
解决办法
4342
查看次数