1 html
1 defer 属性
将 script 标签写在 head 标签内,需要使用 defer 属性,延迟执行,否则会无法获取到对应 dom
或者不写defer ,将 script 标签写在 body 标签内
2 浏览器支持 .js 文件,而不支持 .ts 文件,因此 src 中
<head>// defer 属性<script src='using-ts.js' defer></script></head><body><input type='number' id='num1' placeholder='Number1'/><input type='number' id='num2' placeholder='Number2'/><button>Add!</button></body>
2 js
const button = ducument.querySelector('button')const input1 = document.getElementById('num1')const input2 = document.getElementById('num2')function add(num1, num2) {if(typeof num1 === number && typeof num2 === number) {return num1 + num2} else {return +num1 + +num2}}button.addEventListener('click', function() {console.log(add(input1.value, input2.value))})---------------------------------------------------function add(num1, num2) {if(typeof num1 !== 'number' || typeof num2 !== 'number') {throw new Error('Incorrect input!')}return num1 + num2}const number1 = '5';const number2 = 2.8const result = add(number1, number2)console.log(result)
3 ts
1 ! 表示不为空值
2 as HTMLInputElement ts 类型
const button = document.querySelector('button')const input1 = document.getElementById('num1')! as HTMLInputElementconst input2 = document.getElementById('num2')! as HTMLInputElementfunction add(num1: number, num2: number) {return num1 + num2}button.addEventListener('click', function() {console.log(add(+input1.value, +input2.value))})
