财产';包括';不存在于类型';编号[]和#x27;在typescript文件中

财产';包括';不存在于类型';编号[]和#x27;在typescript文件中,typescript,Typescript,我已在全球范围内安装tsc并运行tsc index.ts 下面是我的根项目文件夹中的tsconfig.json文件 { "compilerOptions": { "target": "esnext", "lib": ["dom", "es2017"], "allowJs": true,

我已在全球范围内安装tsc并运行tsc index.ts

下面是我的根项目文件夹中的tsconfig.json文件

 {
      "compilerOptions": {
        "target": "esnext",
        "lib": ["dom", "es2017"],
        "allowJs": true,
        "esModuleInterop": true,
        "allowSyntheticDefaultImports": true,
        "forceConsistentCasingInFileNames": true,
        "module": "es6",
        "outDir": "./build",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "skipLibCheck": true
    },
    "exclude": ["node_modules", "build"]
    
    }
当我尝试验证数组中是否包含数字时,出现以下错误

类型“number[]”上不存在属性“includes”。是否需要更改目标库?尝试将“lib”编译器选项更改为“es2016”或更高版本

index.ts:-

const max = 15
const min = 10
let arrayOfRandomNumbers: number[] = []

const getTicket = (): void => {
  let randomNumber = null
  if (arrayOfRandomNumbers.length === max - min + 1) {
    document.querySelector('button').disabled = true
  } else {
    while (arrayOfRandomNumbers.length < max - min + 1) {
     
      randomNumber = Math.floor(Math.random() * (max - min + 1)) + min
      if (!arrayOfRandomNumbers.includes(randomNumber)) {
        arrayOfRandomNumbers = [...arrayOfRandomNumbers, randomNumber]
        console.log('arrayOfRandomNumbers for:-', arrayOfRandomNumbers)
        break
      }
    }

  }

}

getTicket()
const max=15
最小常数=10
让arrayOfRandomNumbers:number[]=[]
const getTicket=():void=>{
设randomNumber=null
如果(arrayOfRandomNumbers.length==最大值-最小值+1){
document.querySelector('button')。disabled=true
}否则{
while(arrayOfRandomNumbers.length
Math.floor()永远不会返回数组,这就是为什么下一行失败的原因。
includes
方法用于数组而不是数字

randomNumber = Math.floor(Math.random() * (max - min + 1)) + min // 

必须有一个数组需要在随机号码中分配,因此您可以使用该方法,现在返回一个数字,因此您获得该错误的原因。

include
正在数字数组上调用。它是数组。includes(value),实现是正确的。在数组上调用includes。randomNumber将生成一个有效的数字,我正在验证它是否存在于数组arrayOfRandomNumbers中。我的坏消息是,我只是把它弄错了。只是为了添加。我没有任何package.json。它不是一个节点项目。我使用的是typescript文件(index.ts),它使用全局typescript编译成javascript文件(index.js)。然后在index.html中使用script标记调用javascript。您是否使用Array而不是number[]进行了检查?@malarres事实上是一样的。它不能有区别。@ryan OK,所以有一种答案-运行
tsc
将只对一个文件运行,使用编译器默认值。但是,如果运行
tsc
而不使用文件参数,则将使用项目配置。所以,这是有记录的,但看起来是一种非常奇怪的行为。因此,如果需要单个文件,可以指定命令行配置
npx tsc--target es2016.\index.ts
,但似乎无法指定配置文件
npx tsc--project.\tsconfig.json.\index.js
不适用于单个文件。无论如何,它将传输给定文件夹上的所有内容,因此解决方案可能是cd./js&&tsc