SlideShare a Scribd company logo
日本マイクロソフト株式会社
パートナー事業本部 パートナー技術統括本部
テクニカル エバンジェリスト
井上 章 (いのうえ あきら)
~ Angular ユーザーなら押さえておきたい! ~
TypeScript と Visual Studio Code の基礎と活用
井上 章 (いのうえ あきら)
テクニカル エバンジェリスト
http://aka.ms/chack
2008 年マイクロソフト入社。
主に .NET/ASP.NET や Visual Studio,
Microsoft Azure などの開発技術を専門とする
エバンジェリストとして、技術書籍やオンライ
ン記事などの執筆、さまざまな技術イベントで
の講演などを行う。
✓ TypeScript 登場の背景を振り返る
✓ TypeScript の基本的な言語仕様と利用方法を学ぶ
✓ TypeScript の現在の動向と今後を知る
セッションのゴール
Session Takeaways
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Any developer
Any app
Any platform
Visual Studio Code
http://code.visualstudio.com/
Code optimized editor
Intellisense, debugging, GIT
Windows + Mac + Linux
Open Source
runtimes node.js, .NET Core, Unity, Office
ソース
コントロール
git
タスク実行
gulp
grunt
…
エディタ
30 以上の
開発言語
拡張機能 Debuggers, Languages Linters, Snippets, Themes ...
https://github.com/microsoft/vscode
JavaScript is the
Assembly Language of the Web.
by Scott Hanselman.






Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
TypeScript
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
JavaScript that scales.
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 JavaScript (ECMAScript) のスーパー セット (上位拡張)
となるオープン ソースのプログラミング言語
 0

 TypeScript コンパイラ (tsc) が JavaScript を生成

 静的型付け、クラス、モジュールをサポート

~ Any browser. Any host. Any OS. Open Source. ~
Official Web Sites
www.typescriptlang.org
クイック スタート
サンプル
github.com/Microsoft/TypeScript
ソースコード
ドキュメント
TypeScript
ファイル
(*.ts)
TypeScript
コンパイラ
(tsc)
JavaScript
ファイル
(*.js)
TypeScript
型定義ファイル
(*.d.ts)
JavaScript
実行エンジン
Node.js または
WSH (WScript.Shell)
で実行
ECMAScript 3 (ES3)
ECMAScript 5 (ES5)
ECMAScript 2015+ (ES2015, ES2016, ES2017, ESNEXT)
Web ブラウザーや
Node.js など
1. 2.
3.
function greeter(person) {
return "Hello, " + person;
}
var user = "Jane User";
var message = greeter(user);
JavaScript のあいまいさを排除し、安全性・可読性・生産性を向上
interface I { }
class C { }
module M { }
{ s: string; }
number[]
() => boolean
// Number
let x: number; // 明示的
let y = 0; // y: number と同じ
// Boolean
let b: boolean; // 明示的
let yes = true; // yes: boolean = true と同じ
// String
let s: string; // 明示的
let n = "akira"; // n: string = "akira" と同じ
// Enum
enum Color { Red, Green, Blue }
let myColor = Color.Red;
Console.log(Color[myColor]); // Red
interface, class, namespace などのオブジェクト指向言語構文の導入
interface Dog {
name: string;
Talk: () => string;
}
class Corgi implements Dog {
name: string;
constructor(name: string) {
this.name = name;
}
Talk(): string {
return "Bow wow!";
}
}
class myDog extends Corgi {
constructor() {
super("reo");
}
Talk(): string {
return "Wan wan!";
}
}
namespace M {
export let reo = new myDog();
}
alert(M.reo.Talk());
 ジェネリクス (Generics) 構文
 アロー関数式 (ES2015 匿名関数構文)
 Get / Set アクセサ構文 (プロパティ)
class Human<T> { ... }
let me = new Human<string>("Akira");
let a = function (x: number) { return Math.sin(x); } // 標準式
let b = x => Math.sin(x)
class Who {
private _name: string;
get Name() { return this._name; }
set Name(name: string) { this._name = name; }
}
 tsconfig.json


 http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
 各種 JavaScript ライブラリの変数, オブジェクト, API 等の定義ファイル




 http://definitelytyped.org/
 型定義ファイルの入手

 https://www.npmjs.com/~types

 https://aka.ms/types
/// <reference types="node" />
※ ソースコードで手動参照
※ npm でインストール (package.json で依存関係を管理)
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
http://www.typescriptlang.org/samples/index.html
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
TypeScript
Any browser. Any host. Any OS. Open Source.
JavaScript のスーパーセット
ES 3 以上の環境をサポート
静的型付けとオブジェクト指向
多くの開発ツールのサポート
最新 ES 言語仕様を先取り
JS 開発生産性を向上
Microsoft Developers
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

More Related Content

PDF
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
PDF
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
PDF
Introducing Fluent Design
PDF
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
PDF
Empower every App and every Developer in a Mobile-first, Cloud-first World.
PDF
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
PDF
.NET の今と今後に思うこと (Tokyo Ver.)
PDF
.NET Core と .NET Framework (続きは de:code 2016 で!)
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Introducing Fluent Design
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Empower every App and every Developer in a Mobile-first, Cloud-first World.
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET の今と今後に思うこと (Tokyo Ver.)
.NET Core と .NET Framework (続きは de:code 2016 で!)

What's hot (20)

PPTX
Visual studio 2015 update1 ctpとcsi
PDF
マイクロサービス開発が捗る Project Tye
PDF
TypeScript と Visual Studio Code
PDF
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
PDF
Visual Studio ~ 過去、現在、そして未来
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
PDF
.NET Coreから概観する.NETのOSSへの取り組み
PDF
de:code報告
PPTX
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
PDF
Write slides and books in VSCode + Markdown
PDF
Visual Studio と Azure で Python を始めよう
PPTX
.NET vNext
PDF
インフラエンジニアのお仕事(オンプレ)
PDF
20141129-dotNet2015
PDF
C#の強み、或いは何故PHPから乗り換えるのか
PDF
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
PDF
OWIN って何?
PDF
Visual Studio Code #phpcon2015
PDF
Azure Functions Tips
PDF
Pythonで始めるWebアプリケーション開発
Visual studio 2015 update1 ctpとcsi
マイクロサービス開発が捗る Project Tye
TypeScript と Visual Studio Code
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
Visual Studio ~ 過去、現在、そして未来
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Coreから概観する.NETのOSSへの取り組み
de:code報告
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
Write slides and books in VSCode + Markdown
Visual Studio と Azure で Python を始めよう
.NET vNext
インフラエンジニアのお仕事(オンプレ)
20141129-dotNet2015
C#の強み、或いは何故PHPから乗り換えるのか
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
OWIN って何?
Visual Studio Code #phpcon2015
Azure Functions Tips
Pythonで始めるWebアプリケーション開発
Ad

Viewers also liked (14)

PDF
Angularを使ったエンタープライズWebアプリケーション開発の問題と解決策
PPTX
Azure BaaS meetup
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
PDF
JJUG CCC 2015 Fall keynote
PDF
Spa のための web サーバ構築ノウハウ
PDF
「クロスプラットフォーム開発×XAML」というパワーワードを真剣に考える
PDF
PPTX
Windows formsアプリケーション開発経験者のためのWPF開発のポイント集
PPTX
XAMLで業務アプリがこんなに変わる!デザイン志向による業務アプリの事例紹介
PPTX
ニューラル機械翻訳の動向@IBIS2017
PDF
機械学習モデルの列挙
PDF
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
PDF
Introduction to Chainer
Angularを使ったエンタープライズWebアプリケーション開発の問題と解決策
Azure BaaS meetup
サーバサイドエンジニアが 1年間まじめにSPAやってみた
JJUG CCC 2015 Fall keynote
Spa のための web サーバ構築ノウハウ
「クロスプラットフォーム開発×XAML」というパワーワードを真剣に考える
Windows formsアプリケーション開発経験者のためのWPF開発のポイント集
XAMLで業務アプリがこんなに変わる!デザイン志向による業務アプリの事例紹介
ニューラル機械翻訳の動向@IBIS2017
機械学習モデルの列挙
#ibis2017 Description: IBIS2017の企画セッションでの発表資料
Introduction to Chainer
Ad

Similar to Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用 (20)

PDF
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
PDF
TypeScript and Visual Studio Code
PDF
今からでも遅くないC#開発
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
PDF
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
PPTX
10年目の『エブリスタ』を支える技術
PDF
TypeScript 1.0 オーバービュー
PDF
Groovy Bootcamp 2015 by JGGUG
PDF
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
KEY
1.29.user,user,user
PPTX
Glassfish勉強会(JavaEE6について)
PDF
Wolcome to swift
PDF
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
PPTX
Unity C#3からC#6に向けて
PPT
Eclipse を使った java 開発 111126 杉浦
PDF
Flutterを体験してみませんか
PDF
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
PDF
TechDo Goハンズオン#3
PPTX
GoF デザインパターン 2009
PDF
Python東海GAEやってみた
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
TypeScript and Visual Studio Code
今からでも遅くないC#開発
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
10年目の『エブリスタ』を支える技術
TypeScript 1.0 オーバービュー
Groovy Bootcamp 2015 by JGGUG
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
1.29.user,user,user
Glassfish勉強会(JavaEE6について)
Wolcome to swift
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Unity C#3からC#6に向けて
Eclipse を使った java 開発 111126 杉浦
Flutterを体験してみませんか
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TechDo Goハンズオン#3
GoF デザインパターン 2009
Python東海GAEやってみた

More from Akira Inoue (20)

PDF
New Features in C# 10/11
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
PDF
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
PDF
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
PDF
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
PDF
.NET の過去、現在、そして未来
PDF
VS Code Live Share ~ 東京と大阪を繋いでみよう!
PDF
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
PDF
.NET の今と今後に思うこと
PDF
.NET 最新ロードマップと今押さえておきたい技術要素
PDF
VS Code & Flaskで作るCloud NativeアプリとDevOps
PDF
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
PDF
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
PDF
.NET の今 ~ 最新アップデートと 2019 年の展望
PDF
.NET today and tomorrow
PDF
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
PDF
Intelligent Mobile App と Cloud Native が創るアプリ開発の未来 ~ これからの時代のアプリケーション開発ビジョン ~
New Features in C# 10/11
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
.NET の過去、現在、そして未来
VS Code Live Share ~ 東京と大阪を繋いでみよう!
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
.NET の今と今後に思うこと
.NET 最新ロードマップと今押さえておきたい技術要素
VS Code & Flaskで作るCloud NativeアプリとDevOps
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET today and tomorrow
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
Intelligent Mobile App と Cloud Native が創るアプリ開発の未来 ~ これからの時代のアプリケーション開発ビジョン ~

Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用