Finished implementing Surface in Typescript.