[TypeScript] 1. Catching JavaScript Mistakes with TypeScript
The TypeScript compiler is a powerful tool which catches mistakes even in vanilla JavaScript. Try it online at the TypeScript Playground, zero setup required.
Error version:
var movie = { title: "Memento", year: 2000, IMDB: 8.5, title: "" }; var rating = movie.imdb; function Point(x, x) { this.x = x; this.y = y; } Point.prototype.distance = function() { return Math.sqrt(x * x + y * y); }; function isPast(date) { var now = Date().getTime(); return date.getTime() < now; } function ask(question) { var answer = confirm(question); var answerView = document.getElementByID('answer'); answerView.innerHTML = answer; } function handleLoad() { console.log('loaded'); } document.onLoad = handleLoad(); function newCoinToss() { return Math.random > 0.5 ? 'HEADS' : 'TAILS'; } var tosses = [1,2,3].map(newCoinToss); var allHeads = tosses.every(function(toss) { return toss = 'HEADS'; }); if (allHeads) console.log(allHeads.length, 'heads in a row!'); document.addEventListener('keydown', function(event) { console.log(event.clientX, event.clientY); });
Using WebStorm, in the Terminal, it displays the error message for you.
Fixed version in TypeScript:
var movie = { title: "Memento", year: 2000, IMDB: 8.5 }; var rating = movie.IMDB; function Point(x,y) { this.x = x; this.y = y; } Point.prototype.distance = function() { return Math.sqrt(this.x * this.x + this.y * this.y); }; function isPast(date) { var now = new Date().getTime(); return date.getTime() < now; } function ask(question) { var answer = prompt(question); var answerView = document.getElementById('answer'); answerView.innerHTML = answer; } function handleLoad() { console.log('loaded'); } document.onload = handleLoad; function newCoinToss() { return Math.random() > 0.5 ? 'HEADS' : 'TAILS'; } var tosses = [1,2,3].map(newCoinToss); var allHeads = tosses.every(function(toss) { return toss == 'HEADS'; }); if (allHeads) console.log(tosses.length, 'heads in a row!'); document.addEventListener('mousedown', function(event) { console.log(event.clientX, event.clientY); });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具