关于nestjs类的实例化

72 阅读1分钟
//demo1.ts
class Demo1 {
    sayHello() {
        console.log('Hello World12');
    }
}

export default Demo1;

nestjs的写法

//demo2.ts
import Demo1 from "./demo1";

class Demo2 {
    constructor(private demo1: Demo1) { 
    }


    sayHello() {
        this.demo1.sayHello();
    }
}
new Demo2(new Demo1()).sayHello(); //由nestjs负责维护

不使用语法糖

//demo2.ts
import Demo1 from "./demo1";

class Demo2 {
    private demo1: Demo1;//手动维护 实例化
    constructor(demo1: Demo1) { 
        this.demo1 = new Demo1();
    }


    sayHello() {
        this.demo1.sayHello();
    }
}
new Demo2(new Demo1()).sayHello();

很显然 第一种方法要方便很多,小伙伴学会了吗。其实它只是ts的一个语法糖,就是一系列代码的简写形式,用于帮助开发者减少冗余的代码,理解记住就好,没啥深究的,未来的某天说不好js原生就支持了