簡體   English   中英

Typescript - 將接口文字傳遞給函數參數

[英]Typescript - Pass interface literals to function parameters

我想使用一個接口來設置數據類型,然后在設置默認值時調用它們,如果它們沒有通過。

我得到',' expected.錯誤',' expected. 在功能之后的畫布。 我不能用這種方式打電話嗎?

// Options
interface options {
    canvas?: {
        width: number;
        height: number;
        bgColor: string;
    };
    brushes?: {
        sizeSm: number;
        sizeLg: number;
    };
}

function initialize(options {canvas.width = 700, brushes.sizeSm = 20}) {
    // Do stuff
}

// Call function
initialize({
    canvas: {
        width: 820,
        height: 450,
        bgColor: '#fff'
    },
    brushes: {
        sizeSm: 10,
        sizeLg: 20
    },
});

這應該有效

interface options {
    canvas?: {
        width: number;
        height?: number;
        bgColor?: string;
    };
    brushes?: {
        sizeSm: number;
        sizeLg?: number;
    };
}

function initialize(opts: options = {canvas : { width : 700}, brushes: {sizeSm : 20}} ) {
//function initialize(options {canvas.width = 700, brushes.sizeSm = 20}) {
    // Do stuff
}

// Call function
initialize({
    canvas: {
        width: 820,
        height: 450,
        bgColor: '#fff'
    },
    brushes: {
        sizeSm: 10,
        sizeLg: 20
    },
});

首先,應調整作為參數的選項的語法以使用接口opts: options

接下來,如果我們想要一個default value ,我們需要正確傳遞它:

function initialize(opts: options = {canvas : { width : 700}, brushes: {sizeSm : 20}} ) {

因為我們只設置寬度和尺寸,所以其余部分調整為可選(例如heigth?:number

與播放這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM