角度数据绑定

时间:2017-12-16 17:43:44

标签: angular typescript

所以我一直在学习角度,我遇到了一个问题,这在我的代码编辑器中给了我一个错误,但在浏览器中却没有。

我已将属性设置为字符串。但是,在构造函数中,我已将属性更新为数字。

我在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中得到了一个错误?

2 个答案:

答案 0 :(得分:0)

您将名称变量定义为字符串,但稍后您将为其分配一个数字。这在TypeScript中是不合法的。要解决此问题,您可以执行以下操作:

this.name= new Number(34).toString();

答案 1 :(得分:0)

即使您的TypeScript代码包含错误(重新定义具有不同类型值的变量),转换程序仍会执行转换,返回JavaScript代码。

然后由浏览器运行JavaScript代码。 JavaScript是一种动态类型语言,允许使用不同类型的值重新定义变量,这就是您在浏览器中没有收到错误的原因。