Почему значение машинописного текста становится типом «любой»
Так что кажется, что по какой-то причине, не уверен, кто виноват - тип машинописного текста не распознается...
В качестве примера я использую пакет npm " pinia@next ", и вот простой демонстрационный код:
(Это единственный файл в папке вместе с одним установленным пакетом
npm install pinia@next
)
import { defineStore, Store } from "pinia";
export type State = {
anyProperty: string
};
export const useAccountStore = defineStore("account", {
state: () => ({} as State),
});
var test = useAccountStore() as Store<"account", State>;
И в этом фрагменте кода:
- «useAccountStore» имеет правильный тип
- Тип «StoreDefinition» — это функция, которая возвращает «Store» в качестве возвращаемого типа:
- VS Code считает, что возвращает тип «любой»:
- Версия кода VS: 1.64.1
- Версия машинописного текста VS Code: 4.5.5
Любые идеи, что может происходить?
- Похоже, это не проблема с самим пакетом, так как я не нашел подобных проблем в Интернете, а также в учебниках на YouTube. Я вижу, что люди получают сильный шрифт без каких-либо дополнительных шагов... Таким образом, это должна быть проблема с моей конфигурацией/версией Typescript или что-то в этом роде?
- Я обновил свой код Visual Studio до последней версии
- В инструментах разработки Visual Studio Code - я не вижу ни предупреждений, ни ошибок, связанных с машинописным текстом
1 ответ
Store
определяется в файле type.js пинии как
export type Store<
Id extends string = string,
S extends StateTree = {},
G /* extends GettersTree<S>*/ = {},
// has the actions without the context (this) for typings
A /* extends ActionsTree */ = {}
> = _StoreWithState<Id, S, G, A> &
UnwrapRef<S> &
_StoreWithGetters<G> &
// StoreWithActions<A> &
(_ActionsTree extends A ? {} : A) &
PiniaCustomProperties<Id, S, G, A> &
PiniaCustomStateProperties<S>
Если какой-либо из них решает
any
тогда все получится.