繁体   English   中英

声明包含Generic的类型的变量

[英]Declare a variable in type that includes Generic

我试图声明一个变量并定义它的类型:

const state: State<A, B, C> = { ... };

我收到以下错误: Cannot find name 'A'. 看起来TS认为我使用的是已定义的A型,但我想要的是这样的:

const state<A, B, C>: State<A, B, C> = { ... };

什么是正确的语法?

您可以创建工厂功能,例如:

interface State<A, B, C> { 
  a: A,
  b: B,
  c: C
};

function createState<A, B, C>(obj: State<A, B, C>) {
  return obj;
}

const state = createState({
  a: "abc",
  b: 2,
  c: true
});

另一种选择是用类替换接口:

class State<A, B, C> {
  constructor(
    readonly a: A,
    readonly b: B,
    readonly c: C
  ) {}
}

const state = new State("abc", 2, true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM