Javascript 变量类型未知无法访问typescript
如果我使用一个存储在变量中的一级函数,该变量是Javascript 变量类型未知无法访问typescript,javascript,typescript,types,Javascript,Typescript,Types,如果我使用一个存储在变量中的一级函数,该变量是未知的类型,该怎么办。尝试执行此操作时出现以下编译器错误 错误TS2571:对象的类型为“未知” 需要知道为什么const loadunknown:unknown=()=>{}是个问题,这是我的答案。您的问题没有多大意义,因为如果删除未知,变量foo在您的示例中已经有一个类型(类型:(参数:未知)=>未知)。但我想这只是为了演示 如果将函数foo定义为未知,则typescript编译器不知道foo的类型 关于这一点,好的是,无论谁使用这个变量,都必须
未知的
类型,该怎么办。尝试执行此操作时出现以下编译器错误
错误TS2571:对象的类型为“未知”
需要知道为什么const loadunknown:unknown=()=>{}是个问题,这是我的答案。您的问题没有多大意义,因为如果删除
未知
,变量foo
在您的示例中已经有一个类型(类型:(参数:未知)=>未知
)。但我想这只是为了演示
如果将函数foo
定义为未知,则typescript编译器不知道foo的类型
关于这一点,好的是,无论谁使用这个变量,都必须在typescript编译器允许他通过之前进行类型检查
const foo: unknown = (params: unknown): unknown => {
return null;
}
// not working -> the typescript compiler says:
// This expression is not callable.
// Type '{}' has no call signatures.
foo('werwq');
因此,使用该变量的人必须首先进行类型检查,typescript编译器让变量的用户将其用作函数
if (typeof foo === "function") {
foo('werwq');
}
// or even
switch (typeof foo) {
case "function":
foo("a");
}
这里有一个答案:不,没有帮助,没有寻找任何与未知之间的区别。需要知道为什么常量loadunknown:unknown是个问题,因为unknown不可调用。尝试
如果(typeof loadUnknown==“function”){loadUnknown(“string”);}
@kevinSpaceyIsKeyserSöze您可以在回答中解释您已经链接了答案,但这里再次说明:)有意义此未知类型应用于变量,因此需要进行类型检查
const foo: unknown = (params: unknown): unknown => {
return null;
}
// not working -> the typescript compiler says:
// This expression is not callable.
// Type '{}' has no call signatures.
foo('werwq');
if (typeof foo === "function") {
foo('werwq');
}
// or even
switch (typeof foo) {
case "function":
foo("a");
}