繁体   English   中英

tsc 和 ts-node 忽略 noImplicitAny

[英]tsc and ts-node ignoring noImplicitAny

我有一个 NodeJS 项目,其中@types/nodets-nodetypescript作为开发依赖项安装,并且在我的 tsconfig.json 文件中我设置"noImplicitAny": true 在我的 package.json 文件中,我有三个脚本:

"start": "npm run build && node out/index.js",
"test": "nodemon",
"build": "rimraf ./out && tsc"

rimraf 基本上删除了一个文件夹,在这种情况下,output 目录。

这是我的 nodemon 配置:

{
  "watch": [
    "src"
  ],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "ts-node --project ./tsconfig.json ./src/index.ts"
}

现在这是我的代码:

let text = 'hi'
console.log(text)

并且node test|start|run build全部运行成功。 当然,使用 noImplicitAny 设置,TypeScript 不应该允许我设置text变量而不将其指定为string吗?

抱歉,如果这似乎是一个愚蠢的问题,我对 typescript 很陌生。

谢谢!

当您同时定义和初始化一个变量时, TypeScript 会隐式地从初始化值的类型中分配类型,因此它不是隐式any ,而是隐式string ,因为'hi'是一个string而只是一个string

这两条语句与 TypeScript 相同:

let text: string = 'hi';
let text = 'hi';

事实上,一些 linter 将具有诸如no-unnecessary-type-assertion 之类的规则,这些规则会阻止您添加不会更改类型的类型断言。

一个隐式any的例子是这样的:

const func = (test) => alert(test);
--------------^^^^ implicit any type

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM