簡體   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