Javascript 扩展基本类类型

Javascript 扩展基本类类型,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我试图用一个静态方法和一个实例方法扩展Promise基类。 我对类型脚本的定义有问题。 请参阅下面的代码 declare global { class PromiseConstructor { static timeout(): null; } interface Promise<T> { timeout(): null finally<T>(f: () => void): Promise<

我试图用一个静态方法和一个实例方法扩展Promise基类。 我对类型脚本的定义有问题。 请参阅下面的代码

declare global {
    class PromiseConstructor {
        static timeout(): null;
    }
    interface Promise<T> {
        timeout(): null
        finally<T>(f: () => void): Promise<T>,
    }

}

Promise.timeout = (n: number) => {
  // code...
}

Promise.prototype.finally = function (onFinally) {
  // code...
};
声明全局{
类允诺构造函数{
静态超时():null;
}
接口承诺{
超时():null
最后(f:()=>无效):承诺,
}
}
Promise.timeout=(n:number)=>{
//代码。。。
}
Promise.prototype.finally=函数(最终){
//代码。。。
};
有了这段代码,当我试图在上面定义
Promise.timeout
时,typescript给了我一个错误:
Property timeout是PromiseConstructor类型的静态成员

如果我试图在
接口承诺
块中定义键入
timeout()
,typescript会给我错误
“static”修饰符不能出现在类型成员上


如何键入超时方法?

因为我知道您必须从
接口PromiseConstructor
扩展,而不是
类PromiseConstructor

声明全局{
接口承诺构造函数{
超时(n:编号):任意;
}
}

请不要在globals上粘贴新函数,制作一个模块并从那里导入函数。我仍然在这样做:)完全同意@Bergi:不要这样做)