Ошибка TS7008: "резюме" пользователя неявно имеет тип "any"
После обновления до Angular 2 RC я получил следующую ошибку:
error TS7008: Member 'summary' implicitly has an 'any' type.
в этой строке:
@Input() summary;
что не так?
Изменить: Хорошо, похоже, что я получаю эту ошибку на ЛЮБОЙ из моих общедоступных переменных.
Ответы
Ответ 1
Возможно, вы изменили значение атрибута noImplicitAny
в конфигурации компилятора TypeScript... См. файл tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false // <-----
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Вы можете попробовать добавить тип в свой ресурс. Что-то вроде:
@Input() summary:string;
Ответ 2
просто закомментируйте этот "noImplicitAny": false
в tsconfig
и он будет работать
Ответ 3
У этого вопроса уже есть правильные ответы, однако уточнить и полностью объяснить:
Решение 1. Установите это в свой tsconfig.json:
"noImplicitAny": false
Решение 2 Определите тип для вашей переменной следующим образом:
@Input() summary:string;
Пояснение:
Если вы конвертируете обычный JavaScript в TypeScript, у вас не будет никаких типов, назначенных вашим переменным (или параметрам) - поскольку строгая типизация дает имя TypeScript.
В этом случае, когда у вас есть что-то вроде этой переменной (которая не имеет назначенного типа):
@Input() summary;
Тогда TypeScript будет подразумевать, что ваша переменная имеет тип "Any" (т.е. предполагает, что переменная может содержать значение любого типа). Кроме того, если в вашем tsconfig.json есть следующий набор:
{
"compilerOptions": {
...
"noImplicitAny": true,
}
}
... тогда это сообщает компилятору TypeScript, чтобы он выдавал ошибки, если переменная или параметр неявно имеют тип "Любой". Таким образом, вы можете использовать 1-е решение, чтобы игнорировать все "неявные какие-либо" ошибки или использовать 2-е решение (указать тип), а "any" не будет подразумеваться.
Ссылка для параметров TypeScript для компилятора:
https://www.typescriptlang.org/docs/handbook/compiler-options.html