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