Javascript 扩展基本类类型
我试图用一个静态方法和一个实例方法扩展Promise基类。 我对类型脚本的定义有问题。 请参阅下面的代码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<
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:不要这样做)