文脈上の型付けが私の環境ではなされていないようで、以下のようなコードでは、本来ならばonmousedown関数の型から推論して、代入されようとしている関数の引数mouseEventのプロパティーであるボタンのタイポのエラーを吐いてくれないといけないはずなのにmouseEventがanyでとなるエラーがでます。環境設定の問題でしょうか?
TypeScript
1 window.onmousedown = function(mouseEvent) { 2 console.log(mouseEvent.buton) // ← タイポ 3 };
lib.dom.d.ts
TypeScript
1onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
TypeScript
1interface MouseEvent extends UIEvent { 2 readonly altKey: boolean; 3 readonly button: number; 4 /* 以下略 */ 5}
Error
1パラメーター 'mouseEvent' の型は暗黙的に 'any' になります。ts(7006)
tsconfig.json
JSON
1{ 2 "compilerOptions": { 3 "target": "es2016", 4 "module": "ES6", 5 "strict": true, 6 "strictNullChecks": true, 7 "moduleResolution": "node", 8 "esModuleInterop": true, 9 "declaration": false, 10 "sourceMap": false, 11 "outDir": "./dist/js/", 12 "rootDir": "./src/", 13 "lib": ["es6", "dom", "es2017", "es2018", "es2015.iterable","scripthost"], 14 "downlevelIteration": true, 15 "baseUrl": "./", 16 "typeRoots": ["node_modules/@types"], 17 "strictFunctionTypes": false, 18 /* Experimental Options */ 19 "experimentalDecorators": true, 20 "emitDecoratorMetadata": true, 21 "strictPropertyInitialization": true, 22 "noImplicitThis": true, 23 }, 24}
Visual Studio Code
バージョン: 1.47.2
あなたの回答
tips
プレビュー