关于上下文类型

来源:3-22 类型推断 - 基础+ 最佳通用类型+ 上下文类型

flask

2019-12-27

请问为什么这个代码在我的vscode编辑器上没有报错,编译也没有报错呢

window.onmousedown = function(mouseEvent) {
    console.log(mouseEvent.button)
}

typescript版本为3.7.4

写回答

3回答

撬代码

2020-03-03

找到不同编辑器变现不同的原因

//img1.sycdn.imooc.com/szimg/5e5e741e0921e03919450499.jpg

这边vscode 也是有提示的,网上根据这个内容搜索:发现是ts 的配置项 noImplicitAny 这个属性。

//img1.sycdn.imooc.com/szimg/5e5e74c60914341808770066.jpg

//img.mukewang.com/szimg/5e5e74ec09b656e207800376.jpg

这边vscode 是默认 false,相信老师的 webstrom 是 true;

实际项目 都是可以通过tsconfig.json来配置的,

命令行的话 如下加上 noImplicitAny 就好了

//img1.sycdn.imooc.com/szimg/5e5e75520903679213100354.jpg

1
0

flask

提问者

2019-12-27

//img.mukewang.com/szimg/5e059eb409aba06f06070257.jpg

我这边看我的编辑器,mouseEvent推断成了any了,我将button改成了clickTime还是不会报错,编译也不会报错,将mouseEvent指定为MouseEvent 类型就会报错了,您看下我上传的那张图片

0
2
废柴荣少
我的vscode跟你一样
2020-01-18
共2条回复

ustbhuangyi

2019-12-27

mouseEvent 变量会被推断成 MouseEvent 类型,这个类型是包含 button 属性的,不会报错的

0
1
flask
我这边看我的编辑器,mouseEvent推断成了any了,我将button改成了clickTime还是不会报错,编译也不会报错,将mouseEvent指定为MouseEvent 类型就会报错了,您看下我上面上传的那张图片
2019-12-27
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程