如何解决TypeScript的类型推断功能在情况1下可以正常工作,但在另一种情况下会引发错误
所以我正在尝试使用TS的类型推断功能:即,当我们不将变量类型指定为数字字符串或布尔值时,而是将其留给TS以便在初始化或赋值时自行解决。
不幸的是,它表现得很混乱
案例1->
function func(arg1:number,arg2:string){
console.log(arg1 + arg2);
}
let v ;
v = func;
console.log(typeof v);
v = 8;
console.log(typeof v);
代码工作正常,输出为:函数和数字
但在第2种情况下->
function func(arg1:number,arg2:string){
console.log(arg1 + arg2);
}
let v = func;
console.log(typeof v);
v = 8;
console.log(typeof v);
TS编译器在此处引发错误: 不能将类型'number'分配给类型'((arg1:number,arg2:string)=> void'。
有人可以告诉我我在想什么吗? 〜
解决方法
我的看法是,在第一种情况下,您声明了v
,并且在编写代码时会推断出其类型。因此,一开始它没有某种类型。因此,您可以多次更改它。
在第二种情况下,您已经从一开始就将其声明为一个函数。因此,打字稿会认为从现在开始v
是一个函数,对它的任何类型更改都将导致错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。