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