使用构造函数时找不到名称,但在铸造时可以

Cannot find name when using the constructor but can when casting

我导入了两种。

import { UserManager, WebStorageStateStore } from "oidc-client";

从源代码来看,这两个都是 类 带有构造函数的。我可以调用第一个的所有构造函数,也可以用第二个进行转换,但我不能调用第二个的构造函数。

这两个都有效。

let um = new UserManager({});
let w1 = <WebStorageStateStore> {};

TypeScript 抱怨这个。 "Cannot find name 'WebStorageStateStore'"。

let w2 = new WebStorageStateStore();

为什么 TypeScript 可以转换为类型却找不到构造函数?

这是source for oidc-client

TypeScript complains about this one. "Cannot find name 'WebStorageStateStore'".

仅仅因为变量存在于 type 声明 space 并不意味着它也存在于 variable 声明中 space。在您的情况下,它仅在 type space 中。

更多

这里包含声明 spacehttps://basarat.gitbooks.io/typescript/content/docs/project/declarationspaces.html