Kan*_*nia 22 typescript ecmascript-6
我在谷歌搜索,但无法找到信息,我应该如何添加到我的项目,以允许我使用ES6方法 Array.from
__编辑:删除原型单词
您可以轻松扩展现有类型,如下所示:
interface Array {
from(arrayLike: any, mapFn?, thisArg?): Array<any>;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,这将把函数添加到数组实例而不是像你需要的静态函数.
但这可以这样做:
interface ArrayConstructor {
from(arrayLike: any, mapFn?, thisArg?): Array<any>;
}
Run Code Online (Sandbox Code Playgroud)
然后你应该可以使用Array.from.
在Playground尝试一下.
如果您需要填充实现(因为您打算运行的环境没有它),那么这是如何:
interface ArrayConstructor {
from(arrayLike: any, mapFn?, thisArg?): Array<any>;
}
Array.from = function(arrayLike: any, mapFn?, thisArg?): Array<any> {
// place code from MDN here
}
Run Code Online (Sandbox Code Playgroud)
根据评论,我正在添加一个打字版本:
interface ArrayConstructor {
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
from<T>(arrayLike: ArrayLike<T>): Array<T>;
}
Run Code Online (Sandbox Code Playgroud)
它是如何在lib.es6.d.ts中定义的精确副本.
| 归档时间: |
|
| 查看次数: |
12495 次 |
| 最近记录: |