我下載Kinetic.d.ts從Kinectic.d.tskinetic.d.ts的插件標籤丟失
它遺漏標籤插件,所以我試圖創建它。
我創建:
class Label extends Group
{
constructor(config: LabelConfig);
setText(text: Text);
getText(): Text;
setRect(rect: LabelRect);
getRect(): LabelRect;
}
class LabelRect extends Shape
{
constructor(config: LabelRectConfig);
setPointerDirection(pointerDirection: string);
setPointerWidth(pointerWidth: number);
setPointerHeight(pointerHeight: number);
setCornerRadius(cornerRadius: number);
getPointerDirection(): string;
getPointerWidth(): number;
getPointerHeight(): number;
getCornerRadius(): number;
}
interface LabelConfig extends DrawOptionsConfig, ObjectOptionsConfig
{
rect: LabelRect;
text: Text;
}
interface LabelRectConfig extends DrawOptionsConfig, ObjectOptionsConfig
{
pointerDirection?: string;
pointerWidth?: number;
pointerHeight?: number;
cornerRadius?: number;
}
我得到這個錯誤(我格式化錯誤讀取目的):
Error 1 Supplied parameters do not match any signature of call target:
Could not apply type 'LabelConfig' to argument 1, which is of type
'{
x: number;
y: number;
opacity: number;
listening: bool;
text:
{
text: string;
fontFamily: string;
fontSize: number;
padding: number;
fill: string;
};
rect:
{
fill: string;
pointerDirection: string;
pointerWidth: number;
pointerHeight: number;
lineJoin: string;
};
}'
我實例化的標籤,如:
var labelNumerator = new Kinetic.Label(
{
x: LEFT_MARGIN + numerator.getTextWidth() + 50,
y: numerator.getY() + 5,
opacity: 0.75,
listening: false,
text: {
text: 'Numerator',
fontFamily: FONT,
fontSize: LABEL_FONT_SIZE,
padding: LABEL_PADDING,
fill: LABEL_TEXT_COLOR
},
rect: {
fill: LABEL_BACKGROUND_COLOR,
pointerDirection: 'left',
pointerWidth: LABEL_FONT_SIZE + LABEL_PADDING * 2,
pointerHeight: LABEL_FONT_SIZE + LABEL_PADDING * 2,
lineJoin: 'round'
}
}
);
我錯過了什麼?
比較的是輸入您已聲明的接口時,我看不出什麼毛病,所以也許你錯過了所需的這些接口的一個'LabelConfig'或'LabelRect'或'Text'延伸的特性。一種檢查方式可能是創建一個虛擬類,它實現''LabelConfig'',看看編譯器是否指出了一些缺失的屬性(你可能需要深入研究'LabelRect'和'Text'。 – JcFx 2013-05-10 19:25:19