Javascript 扩展数组';s原型未在typescript中生成
在我基于Javascript 扩展数组';s原型未在typescript中生成,javascript,typescript,webpack,Javascript,Typescript,Webpack,在我基于TypeScript的应用程序中,我想向数组原型添加一些功能 因此,我在我的项目中添加了一个文件Array.d.ts,其中包含: interface Array<T> { selectMany<TOut>(selectListFn: (t: T) => TOut[]): TOut[]; } 在另一个文件中,我将在DivisionResource[]-数组上使用“扩展名”,其中DivisionResource只是数组元素的具体类型。 Intellis
TypeScript
的应用程序中,我想向数组
原型添加一些功能
因此,我在我的项目中添加了一个文件Array.d.ts
,其中包含:
interface Array<T> {
selectMany<TOut>(selectListFn: (t: T) => TOut[]): TOut[];
}
在另一个文件中,我将在DivisionResource[]
-数组上使用“扩展名”,其中DivisionResource
只是数组元素的具体类型。
Intellisense在运行webpack
时不会显示错误
TS2339:类型“DivisionResource[]”上不存在属性“selectMany”
我不明白这里缺少什么 应该将全局类型的合并换行为“global”,如下所示
declare global {
interface Array<T> {
selectMany<TOut>(selectListFn: (t: T) => TOut[]): TOut[];
}
}
声明全局{
接口阵列{
selectMany(selectListFn:(t:t)=>TOut[]):TOut[];
}
}
您还可以尝试将声明文件的三重斜杠引用添加到.ts文件中
/// <reference path="../Array.d.ts" />
//
This throwsTS2669:全局范围的扩展只能直接嵌套在外部模块或环境模块声明中。
你说得对,我也遇到了这个错误(使用TS 2.6.2)。能否尝试将定义文件的引用添加到.ts文件中///
/// <reference path="../Array.d.ts" />