[Typescript] Vue와 Interface

Interface

interface SquareConfig {
    color?: string;
    width?: number;
}

function createSquare(config: SquareConfig): {color: string; area: number} {
    let newSquare = {color: "white", area: 100};
    if (config.color) {
        newSquare.color = config.color;
    }
    if (config.width) {
        newSquare.area = config.width * config.width
    }
    return newSquare;
}

let mySquare = createSquare({color: "black"});

Generic

function identity(arg: number): number {
    return arg;
}

function identity<T>(arg: T): T {
    return arg;
}

Vuex의 Store

import Vuex, {StoreOptions} from 'vuex';
Vue.use(Vuex);

interface State {
    // 상태값에 대한 인터페이스
}

const Store: StoreOptions<State> {
    state: {

    },
    mutations: {

    },
    actions: {

    },
    getters: {

    },
};

export default Vuex.Store(Store)