typescript - typescript 中未定义与未分配的变量

标签 typescript

我不明白为什么 typescript 编译器不将 undefinedunsigned 变量分类。

class MyClass {
   N1: number;
   N2: number;
}

var mc = new MyClass();
mc.N2 = mc.N1;
alert(mc.N2); // output: undefined

为什么输出不是使用未分配的变量“mc.N1”

它不能是未定义,因为我已经明确定义了。它是一个数字(一个没有默认值的数字)。

此外,未定义意味着:我们没有变量mc.N2

我的问题是:我是否误解了什么?如果有,请指正。

最佳答案

这是您的 JavaScript 代码:

var MyClass = (function () {
    function MyClass() {
    }
    return MyClass;
})();
var mc = new MyClass();
mc.N2 = mc.N1;
alert(mc.N2);

Why isn't the output Use of unassigned variable 'mc.N1'?

JavaScript 中不存在这样的未分配状态。

It cannot be undefined because I've defined clearly. It's a number (a number exactly without a default value).

在 javascript 中,变量要么是未定义的,要么是未分配任何值的,
或 null(也是一个值),或任何字符串、整数或 float 、日期或 bool 值。 但是声明 number 对变量的值没有影响。这是 typescript 的内部事务。

Also, undefined mean: we don't have variable mc.N2.

未定义并不意味着您没有变量,它意味着 mc.N2 尚未分配任何值的变量

关于typescript - typescript 中未定义与未分配的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34965303/

相关文章:

传递索引类型时,Typescript 的多余属性检查失败

typescript - 与导入和本地的接口(interface)合并不起作用?

angular - Angular 11 中的 "No overload matches this call"

javascript - Angular 2 Form - 当 ngModel = empty obj 时禁用提交

typescript - 获取用 typescript 写的

angular - 如何在输入字段中的 2 位数字 Angular 4 之后添加破折号/连字符

typescript - 使用 TypeScript 将箭头函数分配给通用函数类型

angular - 在 Angular CLI 项目中使用 Jasmine 自定义匹配器

javascript - 在 Javascript/Typescript 中从 1D 数组创建 3D 数组

typescript - 将 Sequelize.Instance 与 Sequelize v5 和 Typescript 一起使用