uniappx語(yǔ)法差異匯總(附詳細(xì)示例)
前言
最近在做一個(gè)uniappx開發(fā)Android、iOS、微信小程序的項(xiàng)目,開發(fā)過程中遇到很多報(bào)錯(cuò)。其中語(yǔ)法報(bào)錯(cuò)占據(jù)大多數(shù),下面是語(yǔ)法報(bào)錯(cuò)解決之后的匯總
- 所有變量都要聲明類型;
- 對(duì)象的類型聲明不能嵌套,原因未知;
- 部分 JS 語(yǔ)法不支持;
- 不同平臺(tái)對(duì)編寫語(yǔ)法要求不同,所以調(diào)試時(shí)應(yīng)該同時(shí)運(yùn)行Android和iOS及時(shí)發(fā)現(xiàn)報(bào)錯(cuò)。
不支持的 JS/TS 語(yǔ)法
// 1.解構(gòu)
const { a, b } = response.data; // 不支持
const data = {...response.data, ...other} // 不支持
// 2.對(duì)象的變量取值
const a = "a";
const obj = {
a() {
return "test";
},
};
obj[a](); // 不支持
// 3. 函數(shù)返回Promise時(shí)同時(shí)有resolve和reject會(huì)有類型推斷問題。
const promiseExample = (param: booleam) => { // 會(huì)報(bào)錯(cuò),暫未找到解決辦法,只能全部使用Promise.reslove
if(param) {
return Promise.reslove("")
} else {
return Promise.reject(new Error())
}
}
// 4. 不支持短路操作
const str = other || "get" //錯(cuò)誤用法,str在APP上為 false
let str: string; // 正確用法:顯式的為變量賦值
if(typeof other === "string") {
str === other
} else {
str === "get"
}
// 5. 沒有隱式類型轉(zhuǎn)換
const a = ""
if(a) { // 錯(cuò)誤用法,會(huì)報(bào)類型錯(cuò)誤
// handles
}
if(typeof a === "string") { // 正確用法1
// handles
}
if(a === "") {// 正確用法2
// handles
}
// 6. 對(duì)象未定義屬性值引用
const config = {
a: "a"
}
fun(config.g) // Unresolved reference: g
// 7. 為對(duì)象的可選屬性的屬性賦值
interface MyObject {
optionalProp?: {
nestedProp: string;
};
}
const obj: MyObject = {
// ...
}
// 為可選屬性的屬性賦值包含兩步,分別是邏輯判斷是否為空和類型斷言
if (typeof obj.optionalProp === "object") {
obj.optionalProp!.nestedProp = "1234"
}
// 8. Promise.all()的返回值不能確定類型,所以要顯式的處理一次
Promise.all(dataList.map(handles as Promise<string>))// 返回類型為Promise<unknow[]>,需要在.then的成功回調(diào)里return類型明確的值
.then((res : string[]) => res.join(","))
總結(jié)
到此這篇關(guān)于uniappx語(yǔ)法差異匯總的文章就介紹到這了,更多相關(guān)uniappx語(yǔ)法差異內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript檢查表單數(shù)據(jù)是否改變的方法
需要檢查用戶是否修改了一個(gè)表單中的內(nèi)容,可以使用本文提供的方法,如果修改了表單的內(nèi)容則返回true,沒修改則返回false,有需求的朋友可以參考下2013-07-07
JS highcharts動(dòng)態(tài)柱狀圖原理及實(shí)現(xiàn)
這篇文章主要介紹了JS highcharts動(dòng)態(tài)柱狀圖原理及實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
JS實(shí)現(xiàn)簡(jiǎn)單的天數(shù)計(jì)算器完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)簡(jiǎn)單的天數(shù)計(jì)算器,結(jié)合完整實(shí)例形式分析了javascript針對(duì)日期的獲取及天數(shù)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
JavaScript讀取中文cookie時(shí)的亂碼問題的解決方法
讀取中文cookie時(shí)出現(xiàn)亂碼,下面是具體的解決方法,大家以后使用過程中,盡量不要用中文。2009-10-10
JS實(shí)現(xiàn)橫向與豎向兩個(gè)選項(xiàng)卡Tab聯(lián)動(dòng)的方法
這篇文章主要介紹了JS實(shí)現(xiàn)橫向與豎向兩個(gè)選項(xiàng)卡Tab聯(lián)動(dòng)的方法,涉及JavaScript遍歷及動(dòng)態(tài)修改頁(yè)面元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

