Я пытаюсь ввести глубокую деструктуризацию объектов в Typescript, и я искал целую группу, но не нашел ничего, что вполне отвечало бы на мой вопрос, поэтому я подумал, что задам его.
У меня есть кое-что как это в моем классе:
public Example(
key1: string,
key2: string,
val: string,
callback: (list: string[]) => void
): void
{
chrome.storage.sync.get(
({
[key1]: list1,
[key2]: list2
}) => {
list1.includes(val)
? callback(list1.filter(i => i !== val))
: callback(list2)
}
);
}
Я не нашел способ набрать list1
и list2
(как string[]
), и они установлены как any
что бесполезно для меня при попытке использовать функции массива.Я нашел примеры того, как печатать, если key известен ({ key }: { key: string[] }
), но не для моей ситуации.Я также не могу создать Тип, поскольку LHS не является статичным.
Мой пример несколько изменен, но содержит все необходимое, чтобы ответить на мой вопрос.
В случае необходимости, chrome.d.ts
У меня есть состояния:
/**
* Gets one or more items from storage.
* @param callback Callback with storage items, or on failure (in which case runtime.lastError will be set).
* Parameter items: Object with items in their key-value mappings.
*/
get(callback: (items: { [key: string]: any }) => void): void;
Я уверен, что это, вероятно, действительно просто, и я просто ничего не нашел;При этом, этот вопрос может облегчить поиск других людей в будущем, поэтому он будет беспроигрышным, если будет решен.
Я ценю всех и любую помощь.
РЕДАКТИРОВАТЬ: Я думаю, я также ищу случай, когда это не просто string[]
, который возвращается.Что если у вас есть целая куча данных, которые были разных типов?