【问题标题】:Type checking when code is running代码运行时的类型检查
【发布时间】:2016-07-15 06:24:27
【问题描述】:

我在 Node.js 上使用 TypeScript。 TypeScript 在编译期间检查类型,但编译后的 JavaScript 代码不检查类型。例如,这段代码会抛出错误:

var test : number;
test = 'test';

但是Express上的这段代码可以正常工作:

app.post('/', function(req, res, next) {
    var test : number;
    test = req.body.test;
    res.end(req.body.test);
});

因此,我有字符串类型的test,尽管test 是一个数字。 我怎样才能避免这个问题?代码运行时如何查看变量类型?

【问题讨论】:

  • TypeScript 的重点是 static 类型检查,而不是运行时类型检查
  • 是否有任何工具可以对 JavaScript 进行运行时类型检查?
  • if (typeof test === 'string') ... else throw new TypeError(...)
  • 使用github.com/typings/typings 制作typescript typecheck express code。

标签: javascript node.js typescript


【解决方案1】:

代码运行时如何检查变量的类型

TypeScript 基本上推断req 的类型为any。这意味着它在很大程度上完全没有类型检查。

您可以使用 noImplicitAny 选项禁用此功能,然后 TypeScript 将在无法确定变量的 类型 时标记错误。这会使您的代码示例出现编译时错误。

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 2020-10-20
    • 2012-10-05
    • 1970-01-01
    • 2022-01-27
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多