NodeJS Deno不尊重typescript函数中的类型

pftdvrlh  于 2023-04-20  发布在  Node.js
关注(0)|答案(1)|浏览(130)

这是一个示例index.ts文件。正如你所看到的,当一个字符串作为参数传递时,我的IDE会出错。

此外,typescript编译器在使用tsc index.ts时出错。

但令人惊讶的是,当使用deno run index.ts时,答案出来为210,并且没有错误发生。

谁能解释一下为什么deno在运行typescript的时候没有任何错误

function add(a: number, b: number): number {
  const c: number = a + b;
  return c;
}

const num: number = 10;
console.log(add('2', num));
z9ju0rcb

z9ju0rcb1#

从Deno 1.23开始,如果要在使用deno run时进行类型检查,则必须使用--check标志

--check[=<CHECK_TYPE>...]
            Type-check modules.
            
            Deno does not type-check modules automatically from v1.23 onwards.
            Pass this flag to enable type-checking or use the 'deno check'
            subcommand.
            
            If the value of '--check=all' is supplied, diagnostic errors from
            remote modules
            will be included.

现在如果你运行它,你会得到错误:

deno run --check index.ts
error: TS2345 [ERROR]: Argument of type 'string' is not assignable to parameter of type 'number'.
console.log(add('2', num));

相关问题