diff --git a/codes/example-17/entry.ts b/codes/example-17/entry.ts
new file mode 100644
index 0000000..37f3f4f
--- /dev/null
+++ b/codes/example-17/entry.ts
@@ -0,0 +1,9 @@
+class Message {
+ constructor(public msg: string) { }
+ sayHello() {
+ return "
" + this.msg + "
";
+ }
+};
+
+var greeter = new Message("Hello World!");
+document.body.innerHTML = greeter.sayHello();
diff --git a/codes/example-17/index.html b/codes/example-17/index.html
new file mode 100644
index 0000000..a5851ef
--- /dev/null
+++ b/codes/example-17/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Eg17: TypeScript
+
+
+
+
+
+
diff --git a/codes/example-17/webpack.config.js b/codes/example-17/webpack.config.js
new file mode 100644
index 0000000..92f1bc9
--- /dev/null
+++ b/codes/example-17/webpack.config.js
@@ -0,0 +1,15 @@
+module.exports = {
+ entry: './entry.ts',
+ output: {
+ filename: 'bundle.js'
+ },
+ resolve: {
+ extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
+ },
+ module: {
+ loaders: [{
+ test: /\.ts$/,
+ loader: 'ts-loader'
+ }]
+ }
+};
diff --git a/package.json b/package.json
index 260d13a..dd46a68 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,8 @@
"open": "0.0.5",
"open-browser-webpack-plugin": "0.0.1",
"raw-loader": "^0.5.1",
- "style-loader": "^0.13.0"
+ "style-loader": "^0.13.0",
+ "ts-loader": "^0.8.1",
+ "typescript": "^1.8.2"
}
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..e406e81
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "sourceMap": false
+ },
+ "exclude": [
+ "node_modules"
+ ]
+}