10-34思考题答案
来源:11-36 【仿 Nestjs 装饰器实战】 依赖注入实现和升级自动装配装饰器

crazyones110
2021-10-07
class UserController {
@Autowired("userServiceImpl")// 修改Inject 为更专业的 Autowired 单词
private userServiceImpl!: UserServiceInter // 修改Inject 为更专业的 Autowired 单词
public login(): void {
(this.userService as UserServiceImpl).register();
}
}
就是用了as
类型断言感觉不是很优雅
还有就是我理解的依赖注入的好处就是
import UserServiceImpl from "./UserServiceImpl";
// 伪接口
export default class UserServiceInter { // 作用等价于 Paper, 一个公共的父类
public static getServiceImplClass() {
return UserServiceImpl; // 若需求变更, 直接在这里改成CustomerServiceImpl即可
}
}
写回答
1回答
-
keviny79
2021-10-09
业界有个误区,以为用了 typescript 再偶尔用几次 as any 和any 就以为 不 typescript , 但其实typescript之所以弄出一个 any as any 它一定有他们的用武之地, 当一个类型无论怎么做 都无法推导 或无法获取提示 或类型编译期间必须为不确定类型时 就可以用any 和 as any, 比如 自定义守卫参数 一定要用 any
这就好像 有了依赖注入 提倡 创建和使用分离, 看到 new 就以为不好,但其实 在任何一个依赖注入的项目里,都不可能一个new 都没有。
012021-10-09
相似问题