首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用类型记录中的sigleton()在构造函数中传递值?

如何使用类型记录中的sigleton()在构造函数中传递值?
EN

Stack Overflow用户
提问于 2019-11-19 04:07:32
回答 2查看 1.9K关注 0票数 1

对于如何使用类型记录中的单例类在构造函数中传递值,我有疑问。

mycode .ts

代码语言:javascript
复制
import {singleton} from "tsyringe";

@singleton()
class Foo {
  constructor(data:string) 
{
this.data = data
}
}

// some other file
import "reflect-metadata";
import {container} from "tsyringe";
import {Foo} from "./foo";

const instance = container.resolve(Foo);

如何使用constainer .resolve函数.any在构造函数中传递值,给出了示例代码如何传递该值。

EN

回答 2

Stack Overflow用户

发布于 2019-12-15 16:10:26

您可以执行以下操作将值注入构造函数:

代码语言:javascript
复制
import {singleton} from "tsyringe";

@singleton()
class Foo {
  private str: string;
  constructor(@inject("SomeName") value: string) {
    this.str = value;
  }
}

// some other file
import "reflect-metadata";
import {container} from "tsyringe";
import {Foo} from "./foo";

const str = "test";

container.register("SomeName", { useValue: str });
const instance = container.resolve(Foo);
票数 1
EN

Stack Overflow用户

发布于 2020-05-01 17:14:12

@ answer 1762087回答您的问题,如果您想为每个实例的构造函数提供不同的参数,您可以这样做

代码语言:javascript
复制
import "reflect-metadata";
import {container} from "tsyringe";
import {Foo} from "./foo";

const str = "test";

container.registerInstance("SomeName", { useValue: str });
const instance = container.resolve(Foo);

// to clear up instances you've registered with registerInstance()
container.clearInstances();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58926495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档