gpt4 book ai didi

typescript noImplicitAny 和 noImplicitReturns 没有按预期工作

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:52 24 4
gpt4 key购买 nike

我已将“noImplicitAny”和“noImplicitReturns”添加到我的 Typescript tsconfig.json 文件中:

{
"compilerOptions": {
"target":"es5",
"noImplicitAny": true,
"noImplicitThis": true,
"noImplicitReturns": true,
"noUnusedLocals":true,
"out": "dist/js/main.js"
}
}

我预计以下代码会产生错误,或者至少会产生警告:

private randomMove() {  // no return type but no warning :(
let o = 3; // no type for o but no warning :(
}

“noUnusedLocals”正在运行。

这是它应该如何工作,我错过了什么吗?当您不指定类型/返回类型时,是否可以让 Visual Studio Code 生成警告?

最佳答案

您误解了这些标志的含义。

noImplicitAny:

Raise error on expressions and declarations with an implied any type.

在你的示例中不是这种情况,因为编译器推断 o 的类型是 number,如果你这样做,你应该得到错误:

let o;

noImplicitReturns:

Report error when not all code paths in function return a value.

你的函数可能根本不需要返回,但是这样做:

function fn(a: number): boolean {
if (a > 0) {
return false;
}
}

应该会导致编译错误。

不,如果函数不包含返回类型,没有任何方法(据我所知)会导致编译器出错。
那是因为:

  1. 大多数时候编译器可以自行推断返回类型
  2. 如果你的函数没有返回怎么办?对于很多人来说,需要用 : void
  3. 注释每个函数太冗长了

关于 typescript noImplicitAny 和 noImplicitReturns 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com