Skip to content

在 JavaScript (ES6+) 当中使用

即使你没有使用 TypeScript,仍然可以使用 redi。

redi 对于 TypeScript 的语法依赖仅限于装饰器,而装饰器仅被用于在类上声明依赖关系。JavaScript 没有装饰器,作为替代,你可以使用 setDependencies

在 TypeScript 中的这样一段代码:

class MapService {
constructor(
@SkipSelf() @ISatelliteService private readonly satellite: ISatelliteService
) {}
}

等价于 JavaScript 中这样一段代码:

class MapService {
constructor(satellite) {
this.satellite = satellite
}
}
setDependencies(MapService, [[new SkipSelf(), ISatelliteService]])

可以看到,此时声明依赖的语法和对工厂函数声明依赖的语法是一致的。