Я немного застрял в том, как определить значение массива в моем интерфейсе TypeScript для документа Firestore, а также воспользоваться преимуществами FieldValue.arrayUnion (). Зависимости: TypeScript 3.7.2 и @ google-cloud / firestore 2.6.0.
т.е. Интерфейс включает ключ 'members', представляющий собой массив строк:
import * as firestore from "@google-cloud/firestore";
interface SomeDoc {
members: string[] | firestore.FieldValue;
}
const foo: SomeDoc = {
members: ["s"]
};
const bar = foo.members.includes("s") ? "does include" : "does not include";
Я могу успешно обновить значение, используя методы FieldUalue arrayUnion () и arrayRemove () из Firestore, что отлично. Однако TypeScript выдает следующую ошибку типа:
TypeScript error:
Property 'includes' does not exist on type 'string[] | FieldValue'.
Property 'includes' does not exist on type 'FieldValue'. TS2339
Кто-нибудь имеет какие-либо советы о том, как наилучшим образом определить этот вид значения?