【发布时间】:2020-11-27 12:50:31
【问题描述】:
如果我使用存储在unknown 类型变量中的一流函数会怎样。尝试这样做会出现以下编译器错误。
错误 TS2571:对象属于“未知”类型。
let somethingany : unknown;
let somethingunknown : unknown;
const loadUnkown: unknown = (params: unknown) : unknown=>{ <--- exactly her is the mistake
if(typeof params == 'string'){
return params.trim();
}
}
somethingany = loadUnkown('werwq'); <----//eror here
console.log(somethingany.trim());
somethingunknown = loadUnkown('werwer'); <----//eror here
if(typeof somethingunknown == 'string'){
console.log(somethingunknown.trim());
}
虽然any 工作正常。
let somethingany : any;
let somethingunknown : any;
const loadString: any = (params: any): any =>{
return params;
}
somethingany = loadString('asdasdsad');
console.log(somethingany.trim());
somethingunknown = loadString('asdasdsad');
if(typeof somethingunknown == 'string'){
console.log(somethingunknown.trim());
}
需要知道为什么const loadUnkown: unknown = ()=>{} 是个问题
【问题讨论】:
-
不,没有帮助不寻找任何与未知之间的区别。需要知道为什么 const loadUnkown: unknown 是个问题
-
因为 unknown 是不可调用的。试试
if(typeof loadUnkown === "function") { loadUnknown("string");} -
@kevinSpaceyIsKeyserSöze 你能解释一下吗
-
您已经链接了答案,但又在这里 :) 'unknown' vs. 'any'
标签: javascript typescript types