gpt4 book ai didi

javascript - TypeScript的类型推断功能在情况1下可以正常工作,但在另一种情况下会引发错误

转载 作者:行者123 更新时间:2023-12-02 10:45:55 25 4
gpt4 key购买 nike

因此,我正在尝试使用TS的类型推断功能:即,当我们不将变量类型指定为数字字符串或 bool(boolean) 值时,而是将其留给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,并且在编写代码时会推断出它的类型。因此,一开始它没有某种类型。因此,您可以多次更改它。
在第二种情况下,您已经从一开始就将其声明为一个函数。因此, typescript 会认为,从现在开始,v是一个函数,对它的任何类型更改都将导致错误。

关于javascript - TypeScript的类型推断功能在情况1下可以正常工作,但在另一种情况下会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com