[英]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.