В приложении, использующем WebSockets, я хочу сопоставить коды сокета-закрытия для строк, чтобы при закрытии события я мог получить сообщение из числового кода. На данный момент я просто экспортировать объект из модуля «константы», например, так:TypeScript: Как создать только что проиндексированный объектно-ориентированный объект
export const CloseCodes: { [index: number]: string } = {
1000: "Normal closure",
1001: "The endpoint is going away",
1002: "The endpoint is terminating"
// etc.
}
На гнездо близко, я могу сопоставить event.code
в строку через CloseCodes[event.code]
, что это то, что я хочу, но я также могут делать CloseCodes[event.code] = "garbage"
, CloseCodes[1234]="hello"
и delete(CloseCodes[event.code])
, все из которых нежелательны. Есть ли способ создать индексированную структуру только для чтения для такого типа использования? Я ищу способ TypeScript для этого, а не путь ES6 Object.defineProperty(...)
.
спасибо, это работает. Я не получаю сообщение об ошибке с 'delete WsCloseCodes [1000];' хотя, не уверен, почему, поскольку я запускаю TypeScript 2.1.4. В любом случае, это то, что я искал. – 4EverLive