是否可以为下一个函数编写类型定义?
define('ComponentName', ['_', 'jQuery'], function(_, $) {
...
});问题是参数"_“(lodash)和"jQuery”在函数中无法识别。
此外,可以使用可变数量的参数调用函数,例如,只能使用jQuery:
define('ComponentName', ['jQuery'], function($) {
...
});谢谢。
发布于 2018-08-10 17:51:42
如下所示:
interface ComponentTypes {
// Replace with actual types.
MyComponent: unknown;
_: unknown;
jQuery: unknown;
}
function define<D extends keyof ComponentTypes,
A1 extends keyof ComponentTypes>
(d: D, deps: [A1], f: (a1: ComponentTypes[A1]) => void);
function define<D extends keyof ComponentTypes,
A1 extends keyof ComponentTypes, A2 extends keyof ComponentTypes>
// TODO: Where does ComponentTypes[D] enter into this?
(d: D, deps: [A1, A2], f: (a1: ComponentTypes[A1], a2: ComponentTypes[A2]) => void);
function define(d: string, deps: string[], f: Function) {
// ...
}
define("MyComponent", ["_", "jQuery"], function (_, $) {
// ...
});
define("MyComponent", ["jQuery"], function ($) {
// ...
});https://stackoverflow.com/questions/51782419
复制相似问题