首页 > 解决方案 > 你能让工厂函数类型的参数安全吗?

问题描述

我正在将 typescript 类型定义添加到我的 Lua 库中,但我遇到了一些障碍,

在 Lua 中,我将一个函数传递给我的库,该函数返回一个工厂

如果是 JS,它会是这样的:

const Factory = Library((params) => {console.log(params.text)});

后来你会

const instance = Factory({text: "Hello world"});
instance();

我有工厂的打字稿定义,它需要一个函数 arg 并返回正确的类类型,但我也希望类型定义适用于函数的 param 参数。

export function Library(chunk:(params:object)=>void):(params:object)=>instance;

(用例是,导入函数,用我的库加载它,然后用工厂创建东西,我想知道是否可以使各种参数对象类型安全)

标签: typescript

解决方案


您可以添加一个类型参数object

export function Library<T>(chunk: (params: T) => void): (params: T) => instance

推荐阅读