首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型定义文件

类型定义文件
EN

Stack Overflow用户
提问于 2018-08-10 16:41:03
回答 1查看 37关注 0票数 0

是否可以为下一个函数编写类型定义?

代码语言:javascript
复制
define('ComponentName', ['_', 'jQuery'], function(_, $) {
   ...
});

问题是参数"_“(lodash)和"jQuery”在函数中无法识别。

此外,可以使用可变数量的参数调用函数,例如,只能使用jQuery:

代码语言:javascript
复制
define('ComponentName', ['jQuery'], function($) {
   ...
});

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-10 17:51:42

如下所示:

代码语言:javascript
复制
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 ($) {
    // ...
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51782419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档