export interface Cache<V = any> {
value?: V;
timeoutId?: ReturnType<typeof setTimeout>;
time?: number;
alive?: number;
}
这个 Cache 类型的定义,到底是定义了一个对象还是定义了一个函数 ?
Cache<V = any>
这里泛型 V,为什么要指定一个 any ?等于号是什么意思?
难以理解 …
export interface Cache<V = any> {
value?: V;
timeoutId?: ReturnType<typeof setTimeout>;
time?: number;
alive?: number;
}
这个 Cache 类型的定义,到底是定义了一个对象还是定义了一个函数 ?
Cache<V = any>
这里泛型 V,为什么要指定一个 any ?等于号是什么意思?
难以理解 …
代码中的 Cache 首先是一个接口,作为约束某个对象而存在。
泛型可以理解为类型的参数化,对接口 Cache 的重用。此处的"="符号就是默认赋值为 any。
也可以不默认赋值,但是在使用时,需要给一个类型参数:
// 此处传入 number,对value进行约束。
const cache: Cache<number> ={
value: 123,
...
}
2 回答2.9k 阅读✓ 已解决
2 回答1.6k 阅读
1 回答934 阅读
Cache
在这里是定义了一个对象。V = any
表示如果没有提供泛型值给V
就是any
类型,并且这个对象中的value
也是any
类型。等于号在这里是默认值的意思。