تايبسكريبت: TS7006: المعامل 'xxx' له نوع 'any' ضمنيًا
في اختبار جهاز التوجيه الخاص بالمستخدم الخاص بي، أنا أستخدم ملف json
data.json
[
{
"id": 1,
"name": "Luke Cage",
"aliases": ["Carl Lucas", "Power Man", "Mr. Bulletproof", "Hero for Hire"],
"occupation": "bartender",
"gender": "male",
"height": {
"ft": 6,
"in": 3
},
"hair": "bald",
"eyes": "brown",
"powers": [
"strength",
"durability",
"healing"
]
},
{
...
}
]
أثناء بناء تطبيقي، أحصل على خطأ TS التالي
ERROR in ...../UserRouter.ts
(30,27): error TS7006: Parameter 'user' implicitly has an 'any' type.
ملف UserRouter.ts
import {Router, Request, Response, NextFunction} from 'express';
const Users = require('../data');
export class UserRouter {
router: Router;
constructor() {
...
}
/**
* GET one User by id
*/
public getOne(req: Request, res: Response, _next: NextFunction) {
let query = parseInt(req.params.id);
/*[30]->*/let user = Users.find(user => user.id === query);
if (user) {
res.status(200)
.send({
message: 'Success',
status: res.status,
user
});
}
else {
res.status(404)
.send({
message: 'No User found with the given id.',
status: res.status
});
}
}
}
const userRouter = new UserRouter().router;
export default userRouter;
الإجابة رقم 1
أنت تستخدم --noImplicitAny و TypeScript لا يعرف نوع كائن Users. في هذه الحالة، تحتاج إلى تحديد نوع user بشكل صريح.
غيّر هذا السطر:
let user = Users.find(user => user.id === query);
إلى هذا:
let user = Users.find((user: any) => user.id === query);
// use "any" or some other interface to type this argument
أو قم بتحديد نوع كائن Users الخاص بك:
//...
interface User {
id: number;
name: string;
aliases: string[];
occupation: string;
gender: string;
height: {ft: number; in: number;}
hair: string;
eyes: string;
powers: string[]
}
//...
const Users = <User[]>require('../data');
//...
الإجابة رقم 2
في ملف tsconfig.json الخاص بك، قم بتعيين المعامل "noImplicitAny": false تحت compilerOptions للتخلص من هذا الخطأ.
الإجابة رقم 3
قم بإجراء هذه التغييرات في قسم compilerOptions من ملف tsconfig.json هذا نجح معي
"noImplicitAny": false
لا حاجة للتعيين
"strict":false
ورجاءً انتظر دقيقة أو دقيقتين، فالترجمة بطيئة جدًا على بعض أجهزة الكمبيوتر
الإجابة رقم 4
لقد وجدت هذه المشكلة في Angular مع وسائط الدالة.
قبل أن يعطي رمزي خطأ
المعامل 'event' له نوع 'any' بشكل ضمني
ها هو الكود
changeInpValue(event)
{
this.inp = event.target.value;
}
إليك التغيير، بعد الوسيط اكتب : any وتم حل الخطأ
changeInpValue(event : any)
{
this.inp = event.target.value;
}
يعمل بشكل جيد بالنسبة لي.
الإجابة رقم 5
إذا حصلت على خطأ مثل المعلمة 'element' لها نوع 'any' ضمنيًا. Vetur(7006) في vueJs
مع الخطأ:
exportColumns.forEach(element=> {
if (element.command !== undefined) {
let d = element.command.findIndex(x => x.name === "destroy");
يمكنك إصلاحها عن طريق تعريف تلك المتغيرات كـ any كما يلي.
الكود المصحح:
exportColumns.forEach((element: any) => {
if (element.command !== undefined) {
let d = element.command.findIndex((x: any) => x.name === "destroy");
