TypeScriptを導入するために設定を行っています。
厳密に型チェックを行いたいので構成ファイルに"strict": true
を指定しました。
しかし、変数宣言時に型指定がないにも関わらずエラーが出ず、問題なくトランスパイル出来てしまいます。
ちなみに引数の型指定がないときはちゃんと叱ってくれるみたいです。
原因のわかる方がいらっしゃいましたらご教授よろしくお願いします。
tsconfig.json
json
1{ 2 "compilerOptions": { 3 "target": "es5", 4 "module": "commonjs", 5 "strict": true 6 } 7}
webpack.config.js
javascript
1const path = require('path'); 2const MiniCssExtractPlugin = require('mini-css-extract-plugin'); 3const webpack = require('webpack'); 4 5module.exports = { 6 mode: 'development', 7 devtool: 'inline-source-map', 8 entry: './src/js/main.ts', 9 output: { 10 path: path.resolve('./'), 11 filename: 'bundle.js' 12 }, 13 resolve: { 14 extensions: ['.ts', '.js'] 15 }, 16 module: { 17 rules: [ 18 // typescript 19 { 20 test: /.ts$/, 21 loader: 'ts-loader' 22 }, 23 24 // SASS 25 { 26 test: /.(sa|sc|c)ss$/, 27 use: [ 28 MiniCssExtractPlugin.loader, 29 { 30 loader: 'css-loader', 31 options: { 32 url: false, 33 } 34 }, 35 { 36 loader: 'sass-loader', 37 options: { 38 sourceMap: true, 39 outputStyle: 'expanded', 40 } 41 } 42 ] 43 } 44 ] 45 }, 46 plugins: [ 47 new MiniCssExtractPlugin({ 48 filename: 'style.css', 49 }), 50 new webpack.ProvidePlugin({ 51 $: 'jquery', 52 jQuery: 'jquery' 53 }) 54 ] 55}
main.ts
typescript
1import { hello } from './sub'; 2import '../scss/main.scss'; 3 4const name: string = '田所'; 5const age: number = 24; 6const items = ['財布', 'スマホ', '免許'];// 暗黙のanyでエラーになるはずなのにならない 7 8$(() => { 9 const $target = $('.wrapper > p');// 同上 10 $target.html(hello(name, age)); 11 for (let item of items) { 12 console.log(item); 13 } 14});
sub.js
typescript
1export const hello = (name: string, age: number) => { 2 const str = `${name}さんは${age}歳です。`;// ここもエラーにならない 3 return str; 4}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/28 04:00