как поддерживать безопасность типов даже после компиляции из TS в JS - PullRequest
0 голосов
/ 27 сентября 2018

Код TS:

function f(val1:number) {
    console.log(val1);
}

Код JS после компиляции:

function f(val1) {
    console.log(val1);
}

Есть ли способ обеспечить безопасность типадаже после преобразования в js из ts?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

JavaScript - это язык динамического типа.Он преобразует типы в соответствии с потребностями - см. приведение типов .

Если вы действительно хотите убедиться, что какой-то тип используется в вашей функции, вы должны проверить его в своем коде.
Например:

function f(val1) {
    if (typeof val1 !== "number") {
        throw new Error("not a number");
    }
    console.log(val1);
}

Имейте в виду, что это только пример.
Если вы попытаетесь передать var x = new Number(42) функции, она все равно выдаст ошибку, так как typeof xobject.
Так что вам нужно проявлять особую осторожность при выполнении таких проверок.

0 голосов
/ 27 сентября 2018

Нет способа сохранить типы после компиляции в JS.JS не имеет понятия статических типов.Typescript - это статическая проверка типов, вывод простой JS.Поэтому никакие типы не могут сохраняться после компиляции.

Если вы пишете свое приложение в TS, компилятор проверит, что то, что вы делаете, является типобезопасным, поэтому во время выполнения все должно работать.(Хотя даже в коде TS вы можете нарушить безопасность типов и делать небезопасные действия с any и утверждениями типа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...