为什么下面的代码段没有引发任何错误或警告?
{
let x: number;
let y: any;
y = "hello";
x = y;
}
我的期望是:任何事情都应该分配给
y
因为它显式键入为
any
,但只应将数字分配给
x
因为它显式键入为
number
如果是
任何
需要分配给
X
那么应该显式地强制转换为
数
:
x = y as number;
当前的行为如何被认为是可接受的,或者是一个好主意,而不是一个错误?此外,有没有一种方法可以强制编译器提出一个关于这个的问题,并且只接受显式强制转换?
额外信息:
{
"target": "ES5",
"noImplicitAny": true,
"strictNullChecks": true,
"downlevelIteration": true,
"experimentalDecorators": true,
"strictBindCallApply": true,
"strictFunctionTypes": true,
"strictPropertyInitialization": true
}