5ZQF4DSJQUͰܕݕࠪثΛ࡞Δܕษڧձ
View Slide
ܕݕࠪثw ͋Δܭࢉମܥʹ͓͚Δ߲ͷܕΛಋग़͢Δw ܕ͚نଇʹͯ·Βͳ͍߲͕ଘࡏ͢Δ࣌ ΤϥʔΛ͛Δ
+BWB4DSJQUͷܕݕࠪثΛ࡞ͬͯΈΔw ඞཁʹഭΒΕͨͷͰʜʜw ߏจ&TQSJNBͱ͔ΛͬͯಘΔ͜ͱ͕Ͱ͖Δw 5ZQF4DSJQUͷܕใΛదٓ༗ޮ׆༻͢Δw ؆୯ͷͨΊʹɺ߲෭࡞༻Λ࣋ͨͳ͍ͷͱ͢Δ
"45&YQMPSFSIUUQTBTUFYQMPSFSOFU
ܕ͚نଇͷྫ• true: boolean• t: string ∧ u: U → (t + u): string• t: T ∧ u: T → (t === u): boolean• t: { u: U } → t.u: UˢΛͦͷ··࣮͢Ε0,
είʔϓw ݱࡏݕ͍ࠪͯ͠Δ߲Ͱར༻ՄೳͳมͷҰཡΛ ͓࣋ͬͯ͘ඞཁ͕͋ΔͷͰɺfunction typeOf(ast: ESTree.Node, scope: Var[]): TypeΈ͍ͨͳײ͡ʹͳΔ
ΤϥʔΛूΊΔw ܕ͚نଇʹͯ·Βͳ͍࣌ʹΤϥʔΛ͛Δ ͷͰͳ͘ɺจ຺ʹΤϥʔΛՃ͢Δw ϝοηʔδιʔείʔυ্ͷॴΛ༩͢Δͱศར ΤσΟλʔͱ͔ͰઢΛҾ͚Δ
શମ૾function typeOf(ast: ESTree.Node, scope: Var[]) {switch (ast.type) {case ‘BinaryOperator’:// …case ‘…’:default:this.errors.push({message: ‘…’, start: …, end: …})}}