我添加了" 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代码生成警告?
答案 0 :(得分:5)
你误解了那些旗帜的含义。
<强> noImplicitAny 强>:
使用隐含的任何类型提高表达式和声明的错误。
在您的示例中并非如此,因为编译器推断o
的类型为number
,如果您执行此操作,则应该收到错误:
let o;
<强> noImplicitReturns 强>:
当函数中的所有代码路径都没有返回值时报告错误。
您的功能可能根本不需要返回,但这样做:
function fn(a: number): boolean {
if (a > 0) {
return false;
}
}
应该导致编译错误。
不,如果函数不包含返回类型,则无法(我知道)会导致编译器出错。
那是因为:
: void