为什么打字稿值变成 "any" 类型
Why typescript value becomes of type "any"
所以似乎出于某种原因,不确定是谁的错 - typescript 类型未被识别...
例如,我使用的是“pinia@next”npm 包,这是一个简单的演示代码:
(这是文件夹中唯一的文件和安装的单个软件包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" 类型是 returns "Store" 作为 return 类型的函数:
- VS Code 认为它 return 是一个“任何”类型:
- 甚至,当我将其显式转换为“Store”类型时,结果为“any”
- VS 代码版本:1.64.1
- VS Code 打字稿版本:4.5.5
知道会发生什么吗?
- 这似乎不是包本身的问题,因为我在互联网上以及 YouTube 上的教程中都没有发现任何类似的问题我可以看到人们在没有任何额外步骤的情况下变得强大...因此这一定是我的 Typescript configuration/version 或其他问题?
- 我确实将我的 Visual Studio 代码升级到最新版本
- 在 Visual Studio 代码开发工具中 - 我看不到任何与打字稿相关的警告或错误
Store
在 pinia's types.js file 中定义为
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
,那么整个事情都会发生。
所以似乎出于某种原因,不确定是谁的错 - typescript 类型未被识别...
例如,我使用的是“pinia@next”npm 包,这是一个简单的演示代码:
(这是文件夹中唯一的文件和安装的单个软件包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" 类型是 returns "Store" 作为 return 类型的函数:
- VS Code 认为它 return 是一个“任何”类型:
- 甚至,当我将其显式转换为“Store”类型时,结果为“any”
- VS 代码版本:1.64.1
- VS Code 打字稿版本:4.5.5
知道会发生什么吗?
- 这似乎不是包本身的问题,因为我在互联网上以及 YouTube 上的教程中都没有发现任何类似的问题我可以看到人们在没有任何额外步骤的情况下变得强大...因此这一定是我的 Typescript configuration/version 或其他问题?
- 我确实将我的 Visual Studio 代码升级到最新版本
- 在 Visual Studio 代码开发工具中 - 我看不到任何与打字稿相关的警告或错误
Store
在 pinia's types.js file 中定义为
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
,那么整个事情都会发生。