如果设置为接口属性,()是什么意思?
What does () mean if set as a interface property?
在 Vue.js 源代码 (packages/reactivity/src/effects.ts
) 中,我发现了这个:
export interface ReactiveEffectRunner<T = any> {
(): T
effect: ReactiveEffect
}
代码中的()
是什么意思?
表示该类型可以作为函数执行。
例如:
declare const fn: ReactiveEffectRunner<{ abc: number }>
const result = fn() // { abc: number }
fn.effect // ReactiveEffect
当您想要定义具有其他属性的函数时,您可以使用此模式。
()
表示实现该接口的对象将是一个可以调用的函数,不需要任何参数。
effect
表示它还有一个属性调用的效果。
文档中的示例:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}
在 Vue.js 源代码 (packages/reactivity/src/effects.ts
) 中,我发现了这个:
export interface ReactiveEffectRunner<T = any> {
(): T
effect: ReactiveEffect
}
代码中的()
是什么意思?
表示该类型可以作为函数执行。
例如:
declare const fn: ReactiveEffectRunner<{ abc: number }>
const result = fn() // { abc: number }
fn.effect // ReactiveEffect
当您想要定义具有其他属性的函数时,您可以使用此模式。
()
表示实现该接口的对象将是一个可以调用的函数,不需要任何参数。
effect
表示它还有一个属性调用的效果。
文档中的示例:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}