Показать сообщение отдельно
Старый 27.05.2016, 12:18
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
1)Контроль типов происходит только при "компиляции"?Или в рантайме тоже?
Если отбросить лирику, то Typescript это вот что такое:

Код:
class Person {
    name: string;
    surname: string;
    private id: number;
    static title = "Example";
    
    constructor (name: string, surname: string) {
        this.name = name;
        this.surname = surname;
    }
 
    setID (id) { this.id = id; }
    
    getFullName () { return this.name+" "+this.surname; }
}
превращается в нативный js такого вида:

Код:
var Person = (function () {
        function Person(name, surname) {
            this.name = name;
            this.surname = surname;
        }
    Person.prototype.setID = function (id) {
        this.id = id;
    };
    Person.prototype.getFullName = function () {
        return this.name + " " + this.surname;
    };
    Person.title = "Example";
    return Person;
})();
Так что, конечно, на этапе выполнения никакого дополнительного контроля типов быть не может. Там же чистый js, причем не последнего стандарта.

Кстати, ES-2015 для JS показывает правильное направление развития самого JS.
https://learn.javascript.ru/es-modern

Причем, кое-кто из браузеров уже поддерживает его, а для остальных есть Babel. Но мы все-таки пока остановились на TypeScript.