首页 > 解决方案 > 为什么打字稿在将公共参数编译为构造函数后会创建重复赋值?

问题描述

我是打字稿的新手,正在玩编译。编译后的文件下面显示了js文件中的两个赋值,为什么会这样?

输入文件

class Student {
    constructor(public fname: string){
        this.fname = fname;
    }
}

输出内容

var Student = /** @class */ (function () {
    function Student(fname) {
        this.fname = fname;
        this.fname = fname;
    }
    return Student;
}());

标签: typescript

解决方案


TypeScript 包含一种从构造函数参数创建和分配类实例属性的简洁方法。

这意味着,而不是:

class TestClass {
  public name: string;

  constructor(name: string) {
    this.name = name;
  }
}

一个可以使用:

class TestClass {
  constructor(public name: string) { }
}

在您的代码片段中,您混合了两种导致双重分配的语法。


推荐阅读