Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 铸造至:任何断裂类型检查_Typescript - Fatal编程技术网

Typescript 铸造至:任何断裂类型检查

Typescript 铸造至:任何断裂类型检查,typescript,Typescript,在什么情况下,typescript编译器最好接受以下内容: const foo:string=7,如有; 我希望出现一些错误消息,如Type any不能分配给Type string。我让一个bug溜进了生产环境,因为我错过了对计算属性的任何隐式转换。任何都可以分配给任何东西,这就是它的全部要点。要理解它为什么存在,重要的是要记住TypeScript是JavaScript的超集。许多JavaScript API返回任意对象(例如JSON.*,fetch),并且无法使用any为它们编写类型声明。另

在什么情况下,typescript编译器最好接受以下内容:

const foo:string=7,如有;

我希望出现一些错误消息,如
Type any不能分配给Type string
。我让一个bug溜进了生产环境,因为我错过了对计算属性的任何隐式转换。

任何
都可以分配给任何东西,这就是它的全部要点。要理解它为什么存在,重要的是要记住TypeScript是JavaScript的超集。许多JavaScript API返回任意对象(例如
JSON.*
fetch
),并且无法使用
any
为它们编写类型声明。另外,
any
对于将现有代码库从JS迁移到TS非常有用

我让一个bug溜进了生产环境,因为我错过了对计算属性的任何隐式转换


tsconfig.json中的
strict
选项设置为
true
。这将禁止将未知类型隐式转换为any。

我一直认为
:any
是“任何东西都可以分配给任何人”。而不是像你说的那样。如果一个
常量x:any
,则可以为该常量分配一个
:字符串
值。但是如果一个
常量x:string
,那么它就不能得到一个
:any
赋值。关于
strict:true
的好提示,只是检查它是否会捕获我的错误…
any
任何东西都可以分配给any”-这是正确的,但是第二个“any”并不指类型,它意味着任何类型的任何变量(“any”在这里也不指类型
any
:)是的,so
const foo:string=7,如有对我来说没有意义。另一方面,
const foo:any=7作为数字确实如此。而将
any
赋值给
string
的变量(或任何类型的变量)有点类似于在C中强制转换为
void*
:强大但危险的工具。我尽量避免在项目中使用
any