[英]Creating a type that is an object of functions
我在 TypeScript 中有一些方法,它们传递了getJson
之类的函数。 在应用程序中,这是一个实际的getJson
function ,它符合它的含义,但出于测试目的, getJson
使用与原始getJson
形状相同的 function 进行模拟。
我正在为这些依赖项创建一个类型,目前看起来像这样:
import { getJson } from 'get-json';
interface Dependencies {
getJson: typeof getJson;
... others ...
}
这很好用,但我有很多依赖项,可能需要添加更多,并且输入 function 名称然后再次键入typeof -function-
-function- 有很多冗余。
有什么方法可以创建类型为 object 的类型,其键与值是函数的 function 名称匹配?
您可以在整个 object 上使用typeof
,typescript 将为您完成工作:
const function1 = (x: string) => undefined;
const function2 = (x: number, y: boolean) => 5;
const function3 = () => ({x: true, y: 5});
const myObject = {
function1,
function2,
function3
}
type MyObjectType = typeof myObject;
现在 MyObjectType 是
type MyObjectType = {
function1: (x: string) => undefined;
function2: (x: number, y: boolean) => number;
function3: () => {
x: boolean;
y: number;
};
}
您可以将该类型应用于任何其他 object。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.