代码之家  ›  专栏  ›  技术社区  ›  jhon.smith

无法理解此角度方法

  •  0
  • jhon.smith  · 技术社区  · 6 年前

    我看到一段有角度的代码,我无法理解。

    remove_stock({group, index}: {group: FormGroup, index: number}) {
        const control = this.form.get('stock') as FormArray;
        control.removeAt(index);
    }
    

    我知道有一个方法叫做remove stock,因为它使用圆括号,所以需要一个参数。

    但我不确定这个论点。 我知道在typescript中,大括号中的任何内容都是一个对象,冒号前面的内容就是类型的名称。

    但我不明白的是

    {group, index}: {group: FormGroup, index: number}
    

    有人能解释一下吗

    我从一张截图上截取了这个,当然是从终极角度,我被难住了。 这是那个图片的链接

    https://i.vimeocdn.com/video/680140010.webp?mw=1500&mh=844&q=70
    

    谢谢

    2 回复  |  直到 6 年前
        1
  •  2
  •   lupa    6 年前

    首先,这种语法与typescript无关,它是ES6语法。
    这叫做破坏性分配,看看这个链接 Destructuring assignment
    请看下面的代码:

    const user = {
      id: '1',
      name: 'user' 
    };
    
    const {id, name} = user;
    

    这些代码行与此相同

    const user = {
      id: '1',
      name: 'user' 
    };
    
    const id = user.id;
    const name = user.name;
    

    你在上面的功能,就是这样

    remove_stock(input: {group: FormGroup, index: number}) {
      const index = input.index;
      const group = input.group;
      const control = this.form.get('stock') as FormArray;
      control.removeAt(index);
    }
    
        2
  •  1
  •   hernando hurtado hoyos    6 年前

    这是一个从数组中删除元素的函数 根据我在这个链接中找到的例子 https://www.cnblogs.com/Answer1215/p/6592580.html 通过数组创建FormGroup

    removeStock ({group, index}: {group: FormGroup, index: number}) {
         const control = this.form.get ('stock') as FormArray;
         control.removeAt (index);
       }
    

    传递两个参数,即类和标识符

    {group, index}
    

    这里表示参数的数据类型

    {group: FormGroup, index: number}
    

    声明一个常量,该常量包含元素总数 const control=this.form.get(“stock”)作为formaray;

    它删除由索引标识的元素

    control.removeAt (index);
    

    xd我只会说西班牙语,所以请原谅我在google xd上写的东西。