我正在尝试声明一个变量并定义它的类型:
const state: State<A, B, C> = { ... };
我收到以下错误:找不到名称“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
});
另一种选择是用类替换接口(interface):
class State<A, B, C> {
constructor(
readonly a: A,
readonly b: B,
readonly c: C
) {}
}
const state = new State("abc", 2, true);
关于javascript - 在类型中声明一个包含泛型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57407824/