2016-07-28 104 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

非常感谢。 :-) –

相关问题