前提・実現したいこと
TypeScriptで変数の中に入っているObjectにプロパティを追加したいです。
発生している問題・エラーメッセージ
TypeScriptの初心者です。
main変数の中でObjectの中にプロパティを追加したいです。
typescript
1//元々追加されている変数 2let main = { 3 sample1: "サンプル1" 4} 5console.log(main)
console.logで出力したときに
typescript
1{ 2 sample1:"サンプル1", 3 sample2:"サンプル2"}
という感じでmain変数のObjectにsample2というプロパティを追加したいです。
自身で調べても辿り着くことができなかったため、皆さんのお力をお借りしたいです。
よろしくお願いいたします。
追記です。自分が開発しているコードのログが(console.log(変数)で出しています)
typescript
1ItemStack<1 x §r§ftest items(322)@0> { 2 vftable: VoidPointer { 0x00007FF6C9CF5960 }, 3 item: Item {}, 4 userData: CompoundTag {}, 5 block: null, 6 aux: 0, 7 amount: 1, 8 valid: true, 9 pickupTime: '\u0000\u0001\u0019', 10 showPickup: true, 11 canPlaceOn: CxxVector [], 12 canDestroy: CxxVector [] }
という形になっており、
ここに追加でプロパティを入れたいと思っています。
元のコードが文法的におかしいようです。
申し訳ないです...
修正しました。
書いてみてエラーが出た、あるいは思うように動作しなかったコードはありますか?
Object.defineProperties(main,{test:{sample2:'サンプル2',writable:true,enumerable: true,configurable: true}});
がやってみても動きませんでした
> やってみても動きませんでした
どうなるのですか?「コンパイルエラー」「実行時エラー」「実行はできるけど結果が反映されない」どれでしょうか。
実行はできるけど反映されないです
ふつうに、main.sample2=で代入する、ではだめなのですか?
型 'string' を型 'never[]' に割り当てることはできませんとエラーがでました
(main.sample2 = "test")
mainの型定義はどのようなものですか?
var kata = Object.prototype.toString.call(main)
console.log(kata)で行った結果Objectと返されました。
(自分が直接定義しているわけではないです...サーバーのプラグインなので
)
> console.log(kata)で行った結果Objectと返されました。
実行時にTypeScriptの型は残りません。ソースコードにはどのように書いているのですか?
恐らくanyだと思います
> 型 'string' を型 'never[]' に割り当てることはできませんとエラーがでました
これはanyでは発生しません(anyだと、問答無用でプロパティを作成できます)。
恐らく定義されていません。
なのでデフォルトのneverになっているのかなと思います。
> なのでデフォルトのneverになっているのかなと思います。
あえて指定しないとnever[]は出現しないかと思います。
(断片でのやり取りを続けてもなかなか進まないので、再現可能な形でコードを提示していただければと思います)
型わかりました。
ItemStackでした...
回答1件
あなたの回答
tips
プレビュー