账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    typescript产生的javascript报错 undefined property
    • 2020-01-01 00:00
    • 10
    31
    0

    ts代码

    class Point {
        x: number;
        y: number;
    
        constructor(x: number, y: number) {
            this.x = x
            this.y = y
        }
    }

    产生的js代码

    var Point = /** @class */ (function () {
        function Point(x, y) {
            this.x = x;
            this.y = y;
        }
        return Point;
    }());

    在HTML文件中引用js代码,按如下方式使用

    window.onload = function() {
        const point = Point(300, 300)
        console.log(point.x)
    }

    报错,TypeError: Cannot read property 'x' of undefined

    已确认文件引用无误,因为可以访问到同一js文件中的其他对象。
    请教一下这是什么问题。是我什么地方写错了吗?劳烦帮忙看一下,不胜感激。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • ℡可爱三秒.♡ 普通会员 1楼

      在TypeScript中,当你在JavaScript代码中尝试访问一个不存在的属性或方法时,就会产生这个错误。例如,如果你有一个对象,但你试图访问它的password属性,那么就会出现这个错误。

      以下是一个简单的例子:

      ```typescript let obj = { name: 'John', password: '12345' };

      console.log(obj.password); // undefined ```

      在这个例子中,我们试图访问一个不存在的属性password,因此会抛出undefined错误。

      要解决这个问题,你需要确保你正在尝试访问的属性存在于对象中。例如,如果你想要访问一个名为password的属性,你需要在对象的定义中为它分配一个值。或者,如果你正在尝试访问一个不存在的属性,你可以使用typeof操作符来检查属性是否存在,或者使用JavaScript的nullishCoalescing操作符来默认提供一个默认值。

      例如:

      ```typescript let obj = { name: 'John', password: '12345', is富有: nullishCoalescing => true };

      console.log(obj.password); // undefined console.log(obj.is富有时); // true ```

      在这个例子中,我们使用nullishCoalescing => true来默认提供一个默认值,如果password属性不存在,那么它将被设置为true

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部