Прямо сейчас у меня есть очень общая функция, которая, когда мой клиент общается с моим сервером, срабатывает.Таким образом, чтобы сделать его очень гибким, я делаю это:
public call(method: string, ...parameters: any[]) {}
На своем сервере я сохраняю все методы вместе, например:
MethodManager.methods({
findOne: {
function: function(collection: string, query: Object) {
return model(collection).findOne(query).exec();
}
},
find: {
function: function(collection: string, query: Object, sortQuery: Object = {}) {
return model(collection).find(query).sort(sortQuery).exec();
}
}
}
Как видите, каждыйМетод может иметь разные параметры.Когда я пишу код на клиенте, я не могу использовать весь потенциал Typescript, потому что он «любой» приведен.
Как я могу сделать это так, чтобы код Visual Studio распознавал, что когда я пишу эту строку кода:
this.socketManager.call('findOne',
Это выскочит со списком помощников, например:
(method: 'findOne', collection: string, query: Object)
Но когда я набираю:
this.socketManager.call('find',
Это дает мне:
(method: 'find', collection: string, query: Object, sortQuery: Object = {})
Вместо бесполезного:
(method: string, ...parameters: any[])
Возможно ли это?Это было бы решительной помощью для развития.