什么是 return 类型的 `use` 指令?
What is a return type of a `use` directive?
阅读 svelte 教程后,我注意到 clickOutside
函数 return 是一个具有 destroy
方法的对象。
自定义 use
指令的正确 return 类型是什么?
export function clickOutside(node: HTMLElement): ??? {
// setup work goes here...
return {
destroy() {
// ...cleanup goes here
}
};
}
这是一个 ActionReturn
export interface ActionReturn<Parameter = any> {
update?: (parameter: Parameter) => void;
destroy?: () => void;
}
import type { ActionReturn } from "svelte/types/runtime/action";
有售
但是我建议使用 Action
类型而不是 ActionReturn
:
import type { Action } from "svelte/types/runtime/action";
const clickOutside: Action<HTMLElement, undefined> = (node) => {
// setup work goes here...
return {
destroy() {
// ...cleanup goes here
}
};
};
因为这允许 Typescript 验证操作的选项参数类型和更新方法是否属于同一类型。
阅读 svelte 教程后,我注意到 clickOutside
函数 return 是一个具有 destroy
方法的对象。
自定义 use
指令的正确 return 类型是什么?
export function clickOutside(node: HTMLElement): ??? {
// setup work goes here...
return {
destroy() {
// ...cleanup goes here
}
};
}
这是一个 ActionReturn
export interface ActionReturn<Parameter = any> {
update?: (parameter: Parameter) => void;
destroy?: () => void;
}
import type { ActionReturn } from "svelte/types/runtime/action";
但是我建议使用 Action
类型而不是 ActionReturn
:
import type { Action } from "svelte/types/runtime/action";
const clickOutside: Action<HTMLElement, undefined> = (node) => {
// setup work goes here...
return {
destroy() {
// ...cleanup goes here
}
};
};
因为这允许 Typescript 验证操作的选项参数类型和更新方法是否属于同一类型。