创建类的新实例时,关键字new和:(冒号)符号之间的区别是什么

时间:2019-03-07 18:07:21

标签: angular typescript

我有2个班级,我想在

中导入一个班级

班级学生

export class students {
  public avr=123;
  constructor(a,b,c){}
}

班级学院

import {students} from './commonwork'
export class college{
  constructor(public abc:students){}
}

这种方式很好用。

但是

当我尝试在构造函数中或类中任何位置的College类中使用new关键字创建类的实例时

var studentinstance= new student(){}

我收到错误消息“期望3个参数,但得到0.ts(2554)”

能否请您解释一下使用new关键字和:(冒号)创建实例的区别

2 个答案:

答案 0 :(得分:0)

:声明一个类型;它不会创建实例。

请参见documentation

答案 1 :(得分:0)

public abc:students不会创建任何内容。¹:students部分只是为abc分配类型。它不会创建该类型的实例,只是说如果abc要引用任何东西,它必须是students类型。

此:

var studentinstance= new student(){}

...正在创建一个变量(studentinstance)并分配一个student(单个)实例。 {}与其没有任何形式的连接,它只是您可以并且应该删除的语句之后的空白块。

我建议您逐步学习一些基本的TypeScript教程。


¹在它出现的位置(构造函数参数列表)中,它声明 abc作为students实例的属性,并作为构造函数的第一个参数(并根据构造函数参数自动设置属性)。因此从某种意义上讲,您可能会说它创建了一个属性。但是,它不会创建对象。