1 番目の例はコンパイルされるのに、2 番目の例では「指定されたパラメータが呼び出しターゲットの署名と一致しない」というメッセージが表示されるのはなぜですか?
interface Foo {
s: string;
}
// example 1:
function abc(p: Foo[]) {
}
// ok
abc([{s: ''}]);
// example 2:
class Blah {
constructor(p: {stuff: Foo[]}) {
}
}
// not ok: Supplied parameters do not match any signature of call target
var obj = new Blah({stuff: [{s: ''}]});