- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已将“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;
}
}
应该会导致编译错误。
不,如果函数不包含返回类型,没有任何方法(据我所知)会导致编译器出错。
那是因为:
: void
关于 typescript noImplicitAny 和 noImplicitReturns 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856438/
我已将“noImplicitAny”和“noImplicitReturns”添加到我的 Typescript tsconfig.json 文件中: { "compilerOptions": {
我们有一个带有 strict mode 的 Angular 11 应用程序打开。它在 tsconfig.json 的 compilerOptions 配置中有这些值: "strict": true,
我是一名优秀的程序员,十分优秀!