TS報錯:Parameter 'xxx' implicitly has an 'any' type的解決方式
Parameter ‘xxx’ implicitly has an ‘any’ type的解決
這句話翻譯過來就是參數暗指是any類型
在TS中等同於以下代碼:
const f = (param: any) => { //無意義代碼 console.log(param); };
產生的原因:
在TS中如果沒有定義參數類型的話就會報這個信息。
這是屬於是JS的編碼風格,但在TS當中,你需要給它賦上類型。
實例:
//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為數字類型,可以這樣做 /** const f=(param: number)=>{ let sum=param+100; //sum沒有聲明類型,是因為TS的自動類型推斷,param為數字類型,加上100,那麼TS就會推出sum為數字類型。 console.log(sum); } */ //假如param為XXX數組類型,可以這樣做 /** const f=(param: XXX[])=>{ param.forEach((e: XXX)=>{ console.log(e) }) } */
其它解決(非常不提倡):
- 在tsconfig.json當中使用 “noImplicitAny”: false 或者 “strict”: false
- 或者使用tsc命令帶上以上兩個參數
使用這個意味著將TS的類型檢測給屏蔽瞭,也就是說,你寫的語法還是JS語法,與TS沒什麼關系(無意義的行為)
參考文檔中這兩個字段的解釋:
–noImplicitAny:在表達式和聲明上有隱含的 any類型時報錯。
–strict:啟用所有嚴格類型檢查選項。
TS是不鼓勵使用any類型(除特殊情況),如果所有的變量,參數等都為any,那TS基本類型檢查功能就等於沒有使用到
TypeScript的核心原則之一是對值所具有的結構進行類型檢查。
實例:
//原生js語法 function f(param){ let stringList=param.split("-"); console.log(stringList) } f("g-s-e-g-s"); //正常調用 f(23324); //非正常調用 //js中這兩個都是沒有錯,但在運行時,就會error //然而在TS中這會被檢測出來,所以定義any類型和使用原生js的語法變化不大
如何來解決(想法):
根據參數類型對其進行特定的聲明。
實例( 僅參考 ):
param是字符串數組類型:
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); }; //參數 let person_1: personType = { name: 'personName01', age: 21, gender: '男', }; let person_2: personType = { name: 'personName02', age: 22, gender: '女', }; //調用 displayPersonName(person_1); displayPersonName(person_2); /** * 輸出: * 姓名: personName01 * 姓名: personName02 */
總結
到此這篇關於TS報錯:Parameter 'xxx' implicitly has an 'any' type解決的文章就介紹到這瞭,更多相關Parameter 'xxx' implicitly has an 'any' type內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JS作用域作用鏈及this使用原理詳解
- Vue3 SFC 和 TSX 方式自定義組件實現 v-model的詳細過程
- TypeScript接口介紹
- Java實現和電腦玩剪刀石頭佈遊戲
- 一篇文中告訴你JS中的"值傳遞"和"引用傳遞"