Vueでこんな型を作った
type queryOptions = {
[index:string]:Ref|string|number
}
で、こんな感じでオブジェクト内のキーと値をとってみたのだが・・・
for(const key in options) {
if(typeof(options.query[key])==='object'){
console.log((options.query[key]).value);
}else{
// stringとnuberのとき
}
}
するとこんなエラーが
日本語
プロパティ 'value' は型 'string | number | Ref<any>' に存在していません。'valueOf' ですか?
プロパティ 'value' は型 'string' に存在しません。ts(2551)
英語版
TS2551: Property 'value' does not exist on type 'string | number | Ref<any>'. Did you mean 'valueOf'?
Property 'value' does not exist on type 'string'.
Ref型の型が剥がれちゃって、valueプロパティーにアクセスできません。
色々試した結果、こんな感じに書くとキャストできる模様。
色々試した結果、こんな感じに書くとキャストできる模様。
console.log((<Ref>options.query[key]).value);
ジェネリクスでキャストするのか・・・。
Amazon.co.jp