実現したいこと
TypeScruptの理解を深めたいのですが、コンストラクチャシグネチャの概念がいまいち分かりません。
前提
該当のソースコードに例のコードを記載しているのですが、理解ができません。
私の理解を記載しますので、ずれてる箇所から修正して頂けますと助かります。
testはただのinterfaceであり二つの型を指定している。
①インスタンス化可能なコンストラクタ関数
②string指定のnameプロパティ
つまり
function test2(argument: addFunc)の記載ではtmp実行時に①と②の二つを引数として渡す必要がある。
引数argumentの中身は「コンストラクター関数」と「stringプロパティ」の二つというイメージです。
AIに聞いたところこの書き方は引数にインスタンス化可能なコンストラクターを取りその中にnameプロパティが必要とのことです。
interfaceの仕様として
「new」と記載された以降のプロパティはinterfaceの中に(型の条件として)格納されるのではなくnewと記載されたコンストラクタ関数の中に格納されるような感じです。
何故、instanceの中身が急に"コンストラクタ関数だけ"になるのかが不明です。
instance {
一つ目の型:string
二つ目の型:number
三つ目の型:number
}
というふうに何個もオブジェクトの型を設定できるはずのに
なんで「new」がくると以降のプロパティがinstanceではなくてnewで記載したコンストラクタ関数の中に行くのかが分かりません、。
何か勘違いをしている可能性がありますので、お優しいかた分かりやすく教えて頂けますと嬉しいです。
宜しくお願いします
該当のソースコード
interface test {
new(num1:number, num2:number):number
name: string
}
function test2(argument: test) {
let data = new argument(1,2)
}
typescript
試したこと
AIやネットの情報を確認
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
