Предполагая, что вы используете этот модуль npm , который, кажется, имеет свой исходный код здесь , мы можем взглянуть на то, что происходит:
(1) В файле index.ts
вышеприведенного репозитория мы видим определения типов верхнего уровня. Первое, что я заметил, это то, что они используют старый синтаксис Typescript module
(обратите внимание на дату авторского права 2017 года). К счастью, это не должно быть причиной вашей проблемы, и мы видим во включенном интерфейсе, что FieldValue
определен и имеет тип type.FieldValue
. Обратите внимание, что types
включено из @firebase/firestore-types
.
(2) Предполагая, что этот модуль имеет свой исходный код здесь , мы можем видеть в файле index.d.ts
, что FieldValue является классом с присоединенным increment
. Это странно, потому что ваша ошибка говорит о том, что increment
не включен.
(3) Поскольку типы на самом деле не находятся в модуле @firebase/firestore
npm, возможно, существует проблема зависимости модуля. Однако это не так, поскольку package.json
правильно указывает тип модуля в качестве зависимости и использует последнюю версию. Кроме того, они используют последнюю версию Typescript, поэтому проблем не должно быть, если вы слишком.
Основываясь на приведенном выше анализе, я думаю, что мы можем с уверенностью сказать, что в вашей конкретной настройке должны быть некоторые причуды. Примечательно, что вам НЕ нужно делать ничего, кроме включения соответствующих модулей_узлов, чтобы заставить это работать. Вот некоторые дополнительные шаги, которые помогут с отладкой. Пожалуйста, сообщите с вашими результатами:
(1) Какие версии Typescript вы используете для этого проекта? Можете ли вы опубликовать свой tsconfig.json
, а также команду, которую вы используете для компиляции (если вы используете большую утилиту для компоновки, давайте сначала попробуем заставить ее работать без компоновщика).
(2) Какую версию @firebase/firestore
вы используете? Пожалуйста, используйте npm ls
, чтобы раскрыть.
(3) Можете ли вы опубликовать import
заявления, которые вы используете в верхней части вашего файла?
Обновление 1
Итак, вывод вашего npm ls @firebase/firestore
довольно показателен. Вы используете более старую версию, если в документации, на которую вы ссылаетесь, предполагается, что вы используете самую последнюю версию кода. В зависимости от того, насколько изменился API с течением времени и насколько далеко вы находитесь в своем проекте, вы можете выбрать один из нескольких путей:
(1) Обновление до версии firestore, совместимой с документами. К сожалению, не ясно, как версии npm соотносятся с документацией; Лучше всего запустить npm install --save @firebase/firestore@latest
, чтобы убедиться, что вы соответствуете текущим документам
(2) Вы можете попытаться найти документацию, соответствующую вашей версии пожарного магазина; Я не смог найти ничего полезного при быстром поиске, и я не рекомендовал бы этот тяжелый бой, если вы можете избежать его
(3) Вы можете игнорировать ошибку со старым добрым // @ts-ignore
- источником