在类型中声明一个包含泛型的变量
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:
替换界面
class State<A, B, C> {
constructor(
readonly a: A,
readonly b: B,
readonly c: C
) {}
}
const state = new State("abc", 2, true);
我正在尝试声明一个变量并定义它的类型:
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:
替换界面class State<A, B, C> {
constructor(
readonly a: A,
readonly b: B,
readonly c: C
) {}
}
const state = new State("abc", 2, true);