所以我一直在学习角度,我遇到了一个问题,这在我的代码编辑器中给了我一个错误,但在浏览器中却没有。
我已将属性设置为字符串。但是,在构造函数中,我已将属性更新为数字。
我在vsCode中遇到错误,但它在浏览器中运行得很好。我已经发布了以下代码。
export class SandboxComponent{
name:string = 'John Doe';
constructor(){
this.name = 34;
}
}
This is a picture of the code running in the browser
This is a picture of the code in VSCode
我在VSCode中得到的错误表明类型34不能分配给字符串,这是真的。浏览器应该做同样的事情,但它将它转换为字符串,然后显示它。
为什么我在浏览器中没有出错,但我在VSCode中得到了一个错误?
答案 0 :(得分:0)
您将名称变量定义为字符串,但稍后您将为其分配一个数字。这在TypeScript中是不合法的。要解决此问题,您可以执行以下操作:
this.name= new Number(34).toString();
答案 1 :(得分:0)
即使您的TypeScript代码包含错误(重新定义具有不同类型值的变量),转换程序仍会执行转换,返回JavaScript代码。
然后由浏览器运行JavaScript代码。 JavaScript是一种动态类型语言,允许使用不同类型的值重新定义变量,这就是您在浏览器中没有收到错误的原因。