2016-01-23 2 views
2

Я не понимаю, почему компилятор типов typescript не классифицирует undefined с переменной unassigned.undefined vs unassigned variable в машинописных текстах

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

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

Почему не вывод Use of unassigned variable 'mc.N1'?

Это не может быть undefined, потому что я четко определил. Это число (число точно без значения по умолчанию).

Кроме того, undefined означает: у нас нет переменных mc.N2.

Мой вопрос: не понял ли я что-то? Если да, пожалуйста, поправьте меня.

ответ

3

Вот ваш код в JavaScript:

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

Почему не выход Использование неназначенную переменной 'mc.N1'?

В javascript такого состояния не присвоено.

Это не может быть неопределенным, потому что я четко определил. Это число (номер точно без значения по умолчанию).

В JavaScript переменная Eiter не определен, не присваивается какое-либо значение,
или нулевой, который является значением, а также, или любая строка, ingeger или поплавок, дата или BOOL. однако объявление number не влияет на значение переменной. это машинописное внутреннее дело.

Кроме того, неопределенное среднее: у нас нет переменной mc.N2.

Неопределенные не значит, вы не имеете переменный, то это означает mc.N2 переменный с не присваивается никакого значения еще

+0

ya, на основании вашего ответа, я знаю, что машинописный компилятор не настраивает сообщение об ошибке (изменение 'undefined' на' unassigned'). Благодаря! –

2

Вы поняли смысл неопределенных. Это не означает, что свойство было определено в коде. Позволяет читать непосредственно из MDN:

Переменная, которая не была назначена, имеет значение типа undefined.

Смотрите здесь для получения дополнительной информации undefined

И это именно то, что произошло в вашем коде. Значение mc.N1 никогда не назначалось.

Надеюсь, это поможет.

+0

Это помощь. Большое спасибо! –

Смежные вопросы