タイプスクリプトで次のことをしようとしています:
var testHier = [
{ content:"1", opened:true, children: [
{ content:"1.1" }
]},
{ content: "2", opened:true, children: [
{ content:"2.1", opened:false, children: [
{ content:"2.1.1", value:"2.1.1" }
]},
{ content: "2.2", value: "2.2" }
]}
]
しかし、コンパイルするとエラーが発生します:
「配列リテラル式の型に互換性がありません: タイプ '{ コンテンツ: 文字列; 開かれた: bool; 子: { コンテンツ: 文字列; 値: 文字列; }[]; }' には、型 '{ コンテンツ: 文字列; からのプロパティ '値' がありません。値: 文字列; }'"
私が変われば
{ content:"2.1", opened:false, children: [
に
{ content:"2.1", opened:false, value:"foo", children: [
エラーはなくなります。
Chrome コンソールで宣言をテストしたところ、問題なく動作しているようです。これは単なる JavaScript であるため、パスを直接取得できると期待していますが、そうではないようです。ここで何が起こっているか知っている人はいますか?