我试图声明一个变量并定义其类型:
const state: State<A, B, C> = { ... };
我遇到以下错误:Cannot find name 'A'.
看起来TS认为我使用的是已经定义的类型A,但是我想要的是这样的:
const state<A, B, C>: State<A, B, C> = { ... };
正确的语法是什么?
答案 0 :(得分:0)
您可以创建一个工厂函数,例如:
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);