TS報(bào)錯:Parameter?'xxx'?implicitly?has?an?'any'?type的解決方式
Parameter ‘xxx’ implicitly has an ‘any’ type的解決
這句話翻譯過來就是參數(shù)暗指是any類型
在TS中等同于以下代碼:
const f = (param: any) => { //無意義代碼 console.log(param); };
產(chǎn)生的原因:
在TS中如果沒有定義參數(shù)類型的話就會報(bào)這個信息。
這是屬于是JS的編碼風(fēng)格,但在TS當(dāng)中,你需要給它賦上類型。
實(shí)例:
//Parameter 'param' implicitly has an 'any' type.ts(7006) const f = (param) => { //param類型可能為any console.log(param); }; *******解決方式(參考)******* //假如param為字符串類型,可以這樣做 /** const f=(param: string)=>{ console.log(param); } */ //假如param為數(shù)字類型,可以這樣做 /** const f=(param: number)=>{ let sum=param+100; //sum沒有聲明類型,是因?yàn)門S的自動類型推斷,param為數(shù)字類型,加上100,那么TS就會推出sum為數(shù)字類型。 console.log(sum); } */ //假如param為XXX數(shù)組類型,可以這樣做 /** const f=(param: XXX[])=>{ param.forEach((e: XXX)=>{ console.log(e) }) } */
其它解決(非常不提倡):
- 在tsconfig.json當(dāng)中使用 “noImplicitAny”: false 或者 “strict”: false
- 或者使用tsc命令帶上以上兩個參數(shù)
使用這個意味著將TS的類型檢測給屏蔽了,也就是說,你寫的語法還是JS語法,與TS沒什么關(guān)系(無意義的行為)
參考文檔中這兩個字段的解釋:
–noImplicitAny:在表達(dá)式和聲明上有隱含的 any類型時報(bào)錯。
–strict:啟用所有嚴(yán)格類型檢查選項(xiàng)。
TS是不鼓勵使用any類型(除特殊情況),如果所有的變量,參數(shù)等都為any,那TS基本類型檢查功能就等于沒有使用到
TypeScript的核心原則之一是對值所具有的結(jié)構(gòu)進(jìn)行類型檢查。
實(shí)例:
//原生js語法 function f(param){ let stringList=param.split("-"); console.log(stringList) } f("g-s-e-g-s"); //正常調(diào)用 f(23324); //非正常調(diào)用 //js中這兩個都是沒有錯,但在運(yùn)行時,就會error //然而在TS中這會被檢測出來,所以定義any類型和使用原生js的語法變化不大
如何來解決(想法):
根據(jù)參數(shù)類型對其進(jìn)行特定的聲明。
實(shí)例( 僅參考 ):
param是字符串?dāng)?shù)組類型:
const displayList = (param: string[]) => { param.forEach((element: string) => { console.log(element); }); }; displayList(['Hello', 'World', '!']); /** * 輸出: * Hello * World * ! */
param是自定義personType的類型:
type personType = { //自定義類型 name: string; age: number; gender: string; }; const displayPersonName = (param: personType) => { console.log('姓名:', param.name); }; //參數(shù) let person_1: personType = { name: 'personName01', age: 21, gender: '男', }; let person_2: personType = { name: 'personName02', age: 22, gender: '女', }; //調(diào)用 displayPersonName(person_1); displayPersonName(person_2); /** * 輸出: * 姓名: personName01 * 姓名: personName02 */
總結(jié)
到此這篇關(guān)于TS報(bào)錯:Parameter 'xxx' implicitly has an 'any' type解決的文章就介紹到這了,更多相關(guān)Parameter 'xxx' implicitly has an 'any' type內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Javascript如何通過async/await優(yōu)雅地使用FileReader
這篇文章主要為大家詳細(xì)介紹了Javascript和Typescript如何通過async/await優(yōu)雅地使用FileReader,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04JS中innerHTML和pasteHTML的區(qū)別實(shí)例分析
這篇文章主要介紹了JS中innerHTML和pasteHTML的區(qū)別,結(jié)合實(shí)例形式較為詳細(xì)的分析了innerHTML和pasteHTML的具體功能與使用區(qū)別,需要的朋友可以參考下2016-06-06前端echarts加標(biāo)記點(diǎn)及標(biāo)記線和提示框詳細(xì)代碼示例
ECharts中的標(biāo)記線是一條平行于x軸的水平線,有最大值、最小值、平均值等數(shù)據(jù)的標(biāo)記線,它也是在series字段下進(jìn)行配置的,下面這篇文章主要給大家介紹了關(guān)于前端echarts加標(biāo)記點(diǎn)及標(biāo)記線和提示框的相關(guān)資料,需要的朋友可以參考下2024-06-06Javascript 中的 call 和 apply使用介紹
JavaScript 中通過call或者apply用來代替另一個對象調(diào)用一個方法,將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對象2012-02-02layui框架table 數(shù)據(jù)表格的方法級渲染詳解
今天小編就為大家分享一篇layui框架table 數(shù)據(jù)表格的方法級渲染詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08