下边的代码在编译是会报错:
function sayHi1(param): string | number {
return param;
}
Parameter 'param' implicitly has an 'any' type. (参数“param”隐式具有“any”类型。 )
在TS中等同于以下代码:
function sayHi1(param: any): string | number {
return param;
}
产生的原因:
-
在TS中如果没有定义参数类型的话就会报这个信息。
-
这是属于是JS的编码风格,但在TS当中,你需要给它赋上类型。
解决方案:
在param后加上': string'等类型声明;
其它解决(不提倡):
-
在tsconfig.json当中使用 “noImplicitAny”: false 或者 “strict”: false
-
或者使用tsc命令带上以上两个参数;
这两个字段的解释:
–noImplicitAny:在表达式和声明上有隐含的 any类型时报错。
–strict:启用所有严格类型检查选项。
TS是不鼓励使用any类型(除特殊情况),如果所有的变量,参数等都为any,那TS基本类型检查功能就等于没有使用到
TypeScript的核心原则之一是对值所具有的结构进行类型检查。