相关疑难解决方法(0)

使用 Typescript 忽略 Angular 中 GET 请求上未定义的属性集

我正在尝试从服务器请求一些数据。当我将属性的模型更改为未定义时,此“未定义”字符串将在查询字符串中发送。

let filterModel = new GroupFilterModel();
filterModel.status = anycondition ? "opened" : undefined;
this.http.get<GroupModel[]>("apiurl", { params: filterModel });
Run Code Online (Sandbox Code Playgroud)

发送的查询字符串是这样的:

apiurl?status=undefined
Run Code Online (Sandbox Code Playgroud)

我想避免发送状态变量。我怎么会有这种行为?

typescript angular

5
推荐指数
1
解决办法
1854
查看次数

检查对象是否具有空属性

假设我有以下JS对象

data = {
    name: "John",
    dataOfBirth: "",
    externalId: 2548,
    email: "john@email.com",
    mobile: ""
}
Run Code Online (Sandbox Code Playgroud)

我将收到这样一个对象,具有很多属性可以是StringIntegerundefined。为了更新数据库,我无法用空信息覆盖有效信息。

我可以尝试if (data.email === "") delete data.email所有这些方法,但是要维持这种方法似乎不切实际。

有什么方法可以扫描所有属性,而不必命名每个属性并删除所有空/未定义的属性?

javascript node.js

3
推荐指数
2
解决办法
3513
查看次数

从 Typescript 中的对象中删除 null 属性

作为参考从 Javascript 中的对象中删除空白属性,如何使其兼容 Typescript?

JS 函数(嵌套对象 | ES10):

function removeEmpty(obj) {
  return Object.fromEntries(
    Object.entries(obj)
      .filter(([_, v]) => v != null)
      .map(([k, v]) => [k, v === Object(v) ? removeEmpty(v) : v])
  );
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过Exclude<T, null>,但它不适用于嵌套对象,并且我认为这不是正确的实用程序。

请注意,返回的类型应删除null类型但保留undefined

示例/预期行为:

type TestType = {
  a?: {
    b?: {
      c: string;
    } | null;
    z?: {
      x: string;
    };
  } | null;
};

const testObj: TestType = {
  a: {
    b: null,
    z: { …
Run Code Online (Sandbox Code Playgroud)

javascript null undefined typescript

3
推荐指数
1
解决办法
4654
查看次数

Axios conditional parameters

axios.get(globalConfig.FAKE_API, {
    params: {
        phone: this.phone,
        mail: this.mail
    },
})
.then((resp) => {
    this.req = resp.data
 })
.catch((err) => {
     console.log(err)
 })
Run Code Online (Sandbox Code Playgroud)

Is there any way I can make conditional parameters when doing GET / POST requests with Axios? For example, if my mail parameter is empty, i won't send an empty parameter, like: someurl.com?phone=12312&mail=

javascript axios

2
推荐指数
1
解决办法
2253
查看次数

如何从对象中删除未定义的属性?

我有这个对象:

  this.prepaidObject = {
            'customerType' : this.prepaidDetailForm.prepaidDetails.customerType,
            'firstName' : this.prepaidDetailForm.prepaidDetails.firstName,
            'lastName' : this.prepaidDetailForm.prepaidDetails.lastName,
            'note' : this.prepaidDetailForm.prepaidDetails.note,
            'created': this.prepaidDetailForm.prepaidDetails.created
        };
Run Code Online (Sandbox Code Playgroud)

现在有时某些属性是未定义的。我想要的是如果this.prepaidDetailForm.prepaidDetails未定义属性之一不显示它们。因此,例如,如果this.prepaidDetailForm.prepaidDetails.firsName未定义,我不需要创建'firstName'属性 isnide 对象。任何建议我该怎么做?

javascript typescript

0
推荐指数
2
解决办法
3625
查看次数

标签 统计

javascript ×4

typescript ×3

angular ×1

axios ×1

node.js ×1

null ×1

undefined ×1