2016-07-28 128 views
1

我想定義一個對象文字的類型,使用鍵valye對,如下所示。無論如何不能管理這一點。請幫忙。Typescript:定義一個對象的類型

export const endPoints: {name: string: {method: string; url: string;}} = { 
    allFeed: { 
    method: 'GET', 
    url: 'https://www.yammer.com/api/v1/messages.json' 
    }, 
    topFeed: { 
    method: 'GET', 
    url: 'https://www.yammer.com/api/v1/messages/algo.json' 
    }, 
    followingFeed: { 
    method: 'GET', 
    url: 'https://www.yammer.com/api/v1/messages/following.json' 
    }, 
    defaultFeed: { 
    method: 'GET', 
    url: 'https://www.yammer.com/api/v1/messages.json/my_feed.json' 
    } 
}; 

回答

1

你很接近,應該是:

const endPoints: { [name: string]: { method: string; url: string; } } = { 
    allFeed: { 
     method: 'GET', 
     url: 'https://www.yammer.com/api/v1/messages.json' 
    }, 
    ... 
}; 

您還可以使用接口:

interface EndPoint { 
    method: string; 
    url: string; 
} 

interface EndPointMap { 
    [name: string]: EndPoint; 
} 

const endPoints: EndPointMap = { 
    ... 
} 

或者類型:

type EndPoint = { 
    method: string; 
    url: string; 
} 

type EndPointMap = { 
    [name: string]: EndPoint; 
} 

const endPoints: EndPointMap = { 
    ... 
} 

這使得代碼在我看來更可讀(與之相比)在線方式聲明類型)

+0

非常感謝。 :-) –

相關問題