3
我正在寻找一些关于如何正确处理这种情况的建议。TypeScript声明扩展类与静态方法。
我something.d.ts
export class Sprite {
static fromFrame(frameId: string): Sprite;
static fromImage(imageId: string, crossorigin?: boolean, scaleMode?: number): Sprite;
}
export class TilingSprite extends Sprite {
static fromFrame(frameId: string, width?: number, height?: number): TilingSprite;
static fromImage(imageId: string, width?: number, height?: number, crossorigin?: boolean, scaleMode?: number): TilingSprite;
}
在这种情况下,我得到以下错误:
Error 40 Class static side 'typeof TilingSprite' incorrectly extends base class static side 'typeof Sprite'. Types of property 'fromImage' are incompatible.
Type '(imageId: string, width?: number, height?: number, crossorigin?: boolean, scaleMode?: number) => ...' is not assignable to type '(imageId: string, crossorigin?: boolean, scaleMode?: number)
=> Sprite'.
Types of parameters 'width' and 'crossorigin' are incompatible.
Type 'number' is not assignable to type 'boolean'.
我真的不能明白的方式来解决问题,或者,它是从什么不同的行为,我会期待。
我怎么能干净地解决这个签名?
再次感谢@basarat – Clark