是否有类似C#的Func关键字的TypeScript?
在对今天转换现有代码的TypeScript的初步探索中,我使用了类/对象的接口,但发现自己不必要地复制了函数类型。我错过了什么吗?
在下文中,我已经为对象类型(数据)定义了一个接口,并且可以从命名(data:Data)=>中受益。也是无效
interface Funcs {
box: (data: Data) => void;
lbl: (data: Data) => void;
}
谢谢!
答案 0 :(得分:3)
函数类型(args) => t
只是对象类型{(args): t}
的缩写,因此以下内容应该有效:
interface Func {
(data: Data): void;
}
interface Funcs {
box: Func;
lbl: Func;
}
答案 1 :(得分:0)
在C#中,Func
采用泛型类型参数。泛型不是TypeScript语言规范的一部分 - 但它们列在路线图中。
话虽如此,我不确定你打算如何在这种情况下使用它 - 你是在这之后吗?
伪码:
interface Funcs {
box: Action<Data>;
lbl: Action<Data>;
}
使您的定义更短(即我接受Data类型的参数并返回void)。我使用Action
因为没有返回值,但您可以在这里同等地考虑Func<Data, ResultType>
。
在任何情况下,我们都必须等待仿制药,看看它们是如何实施的,以及它们是否允许这种用途。