当前位置:  开发笔记 > 编程语言 > 正文

Typescript noImplicitAny和noImplicitReturns无法按预期工作

如何解决《TypescriptnoImplicitAny和noImplicitReturns无法按预期工作》经验,为你挑选了1个好方法。

我在我的Typescript tsconfig.json文件中添加了“ noImplicitAny”和“ noImplicitReturns”:

{
    "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生成警告?



1> Nitzan Tomer..:

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

noImplicitAny

在隐式任何类型的表达式和声明上引发错误。

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

let o;

noImplicitReturns

当函数中的所有代码路径均未返回值时,报告错误。

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

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

应该导致编译错误。

不,如果函数不包含返回类型,则不会(我知道)会导致编译器出错。
那是因为:

    编译器可以在大多数情况下自行推断返回类型

    如果您的函数不返回怎么办?对于很多人来说,用每个函数注释都太冗长了: void

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有