我在一個回傳陣列或布林值的類中有一個箭頭函式:
class A{
myfunction=(val:number):Array<string>|Boolean=>{
return number>1000?true:["jack","robin","harry"];
}
}
我想將該函式稱為:
const myclass=new A();
const arr=myclass.myfunction(10);
if(typeof arr==="boolean"){
console.log("dami");
}else{
if(arr.indexOf("harry")>0){
##here at indexOf i get an error :Property 'indexOf' does not exist on type 'Boolean | string[]'.
console.log("we found harry");
}
}
呼叫indexOf給出一個錯誤說:Property 'indexOf' does not exist on type 'Boolean | string[]'.我在這里做錯了什么?
uj5u.com熱心網友回復:
您的回傳型別應參考原始boolean型別:
Array<string> | boolean // or string[] | boolean
而不是物件Boolean型別:
Array<string> | Boolean
正如TypeScript 手冊所述:
型別名稱
String,Number, 和Boolean(以大寫字母開頭)是合法的,但指的是一些很少出現在代碼中的特殊內置型別。始終使用string、number或boolean表示型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/449553.html
標籤:打字稿
