は同義である。JSでいうところのobjectを定義すると{ name: string }という型が暗黙的に定義されたことになる。 リテラル型 値を指定する型のこと。決まった値しか使わせたくない場合に使用する。
![TypeScriptを雰囲気で使っていたので勉強し直したら知らなかったこと](https://cdn-ak-scissors.b.st-hatena.com/image/square/7c5eead4bf4ce958db857d14259e508d7157e53c/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--z8LxfW0Z--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ATypeScript%2525E3%252582%252592%2525E9%25259B%2525B0%2525E5%25259B%2525B2%2525E6%2525B0%252597%2525E3%252581%2525A7%2525E4%2525BD%2525BF%2525E3%252581%2525A3%2525E3%252581%2525A6%2525E3%252581%252584%2525E3%252581%25259F%2525E3%252581%2525AE%2525E3%252581%2525A7%2525E5%25258B%252589%2525E5%2525BC%2525B7%2525E3%252581%252597%2525E7%25259B%2525B4%2525E3%252581%252597%2525E3%252581%25259F%2525E3%252582%252589%2525E7%25259F%2525A5%2525E3%252582%252589%2525E3%252581%2525AA%2525E3%252581%25258B%2525E3%252581%2525A3%2525E3%252581%25259F%2525E3%252581%252593%2525E3%252581%2525A8%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Anrikiji%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2U1MGQ2NTQ4ZjQuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)
この記事は、昨日公開された以下の記事に対するアンサー記事です。TypeScriptで型定義に凝る派筆頭(自称)として、このお題に対して別の視点から光を当ててあげるためにこの記事を用意しました。 TypeScript の型定義に凝りすぎじゃね? まず最初に、この記事(以下では元記事と呼びます)の著者を攻撃したり、元記事の内容を否定する意図はないことをご理解ください。結局のところ、考え方が異なり、前提が異なるから異なる結論になっているだけなのです。TypeScriptを使う皆さんがいろいろな観点から見た情報を取得し、自分の状況に応じた適切な考え方・判断をできるようにすることがこの記事の目的です。 要約 大きなコードを小さく分解しても本質的な難しさが消えるわけではないよ? 型はドキュメントなんだから正確に書こうぜ! 外界との接続も妥協せずに型システムで解決しようぜ! 機械にできる仕事を人間がする
はじめに あくまで一個人の意見なので絶対的な解ではないというのと、どっちをデフォルトに選んでも普通にアプリケーション開発してて困ることはほぼほぼないと思うので、そこまで気を揉むことでもない、ということだけ最初に述べておいて意見をしたためます。 TL;DR アプリケーション開発では基本的に type でおk Declaration merging したい時だけ interface ライブラリ開発のような使う側で拡張したい(Declaration merging したい)時は interface とりあえずチームでどっちをデフォルトにするかは統一しといた方が気持ちいい type と interface の違い 機能的にはそんなに大きな違いはなく、個人的に判断に関わるのは次の3つかなと思います。 interface では Declaration merging がされる。type ではされない
皆さんこんにちは。京都開発室のLinです。仕事と個人的なプロジェクトでTypeScriptによる開発を始めて約2年が経ちましたので、 TypeScript導入時の経験を皆さんにお話ししたいと思います。 近年、TypeScriptはフロントエンド分野で最も注目を集める技術となっています。The State of JavaScriptの資料によれば、TypeScriptの使用を選択する開発者は増加を続けており、その評価も肯定的なものが多いようです。 「次のプロジェクトではTypeScriptにより開発を行うべきだ」「今あるJavaScriptプロジェクトをTypeScript仕様に変更すれば、プロジェクト品質の向上につながる」と考えているチームは数多くあるでしょう。 しかしながら、TypeScript導入のコストおよびメリットについては、極めて慎重に評価を行う必要があると、私は考えています。
はじめに以前の記事で、Serverless + TypeScript のプロジェクトを作りました。 今回はそのプロジェクトに Express(と、serverless-http)を導入します。 リポジトリも用意しました。 導入方法Express と serverless-http をインストール$ npm install express serverless-http express を TypeScript で扱うために@types/expressもインストールします。 $ npm install -D @types/express express + serverless-http を使った handler をapp.tsに用意import { APIGatewayEventRequestContext, APIGatewayProxyEvent, Context, } from "a
今やTypeScriptはウェブアプリ開発時に最初に検討される言語となっているが、開発が始まった2010年頃は、まだオープンソースに恐れを抱いていたMicrosoft文化のなかで、ゆっくりと歩を進めていく必要があった。 TypeScriptの共同創案者であり、デンマークのソフトウェアエンジニアであるとともにMicrosoftのテクニカルフェローも務めているAnders Hejlsberg氏は米ZDNetに対して、Steve Ballmer氏が同社の最高経営責任者(CEO)だった2010年に、JavaScript開発者の心をつかむ唯一の道はオープンソース戦略だという決断をチームが下した際のことを語ってくれた。 Ballmer氏は2001年に、LinuxがMicrosoftの知的財産すべてを脅かす「ガン」だと発言しており、Microsoftの幹部らは2010年時点でも、オープンソースが依然とし
TypeScript v3.8.1 RC 変更点 こんにちはメルペイ社な@vvakameです。 TypeScript 3.8 RCがアナウンスされました。 What's new in TypeScript in 3.8 Breaking Changes in 3.8 TypeScript 3.8 Iteration Plan TypeScript Roadmap: July - December 2019 Roadmapはこちら。 この辺に僕が試した時のコードを投げてあります。 変更点まとめ 型のみのimport, exportのサポート Type-Only Imports and Exports import type { foo } from "./foo"; や export type { foo }; をサポートした flowtypeには前からあったやつですね ECMAScript
この記事はトレタ Advent Calendar 2019の5日目です。 こんにちは、奥野賢太郎 ( @okunokentaro ) です。私は株式会社トレタの社員ではなく、フリーランスのデベロッパーなのですが、今年一年トレタ社のお仕事のお手伝いをさせていただいて、縁がありましてゲスト寄稿的にカレンダーに参加しています。 要約 トレタ社では様々な種類の入力フォームを備えたアプリケーションを運用しています バリデーション処理の分散は修正漏れやバグに直結するので、共通化しましょう 単なる共通化では問題があるため、値オブジェクトに集約しましょう TypeScriptでの値オブジェクトの定義には一工夫が必要です constructor validationの手法を紹介します なにをやっているの? 私はTypeScriptやJavaScriptを専門としたデベロッパーなので、主にフロントエンドや、場
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
TypeScript再入門 ― 「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に JavaScriptプロジェクトでTypeScriptを導入する際には、“柔らかい”静的型付き言語とするのがおすすめです。藤吾郎(gfx)さんがまとめた「がんばらないTypeScript」のガイドラインです。 TypeScriptは、すべてのJavaScriptプロジェクトで採用する価値のある技術です。TypeScriptとこれに対応したエディタを導入することで、補完や型ベースの整合性のチェックにより、すべてのプロジェクトで生産性が上がります。またリファクタリングも容易になるので、長期あるいは大規模なプロジェクトでも品質を保ちやすくなります。 この記事では、TypeScriptについて最低限の知識とともに、サクッと(どちらかというと既存のプロジェクトに)導入するための
こんにちはメルペイ社な@vvakameです。 TypeScript 3.0 RCがアナウンスされました。 What's new in TypeScriptも更新されているようです。 破壊的変更もあるよ! この辺に僕が試した時のコードを投げてあります。 変更点まとめ プロジェクト間の参照のサポート Support for project references/composite projects 2 3 4 5 6 monorepo的構造の中で過ごしやすくなったっぽいですね compilerOptions.composite と references がtsconfig.jsonに追加 依存先プロジェクトの型が変わるような変更があったら適当にビルドしてくれる --build, -b の追加 実質 --build はサブコマンドみたいな感じのようだ --verbose, --dry, --cl
Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不
Today we’re announcing the release of TypeScript 2.9!If you’re not familiar with TypeScript, it’s a language that adds optional static types to JavaScript. Those static types help make guarantees about your code to avoid typos and other silly errors. They can also provide nice things like code completions and easier project navigation thanks to tooling built around those types. When your code is r
TypeScriptは型がついたJavaScriptです。プログラミングにおいて型があることの恩恵は大きく、近頃AltJSの代表格として人気を集めています。TypeScriptはもともと型のないJavaScriptで書かれるコードに型を付けることを使命としていることもあり、たまに変な型が追加されます。例えばTypeScript2.8で追加されたconditional typesはずいぶん注目を集めました。これによってTypeScriptの型システムの表現力が広がりましたが、一方でTypeScriptを書いている人の中には、よく分からない型が増えてついて行けない、一部の人たちが長くてよく分からない型定義を書いて喜んでいるだけと思っている方もいるのではないでしょうか。実際、健全にJavaScriptを書いていれば、自分でそのような変な型を書くことはあまり多くありません。 そこで、この記事ではT
こんにちは、編集長の白石です。 この記事は、9月24日に開催されたHTML5 Conference 2017に登壇したエキスパートに、お話されたセッションのトピックを中心に語っていただこうとういものです。セッションの内容をより深く理解する手助けになるだけでなく、本記事単体でも面白く読んでいただけることを目指しています。 今回お話を伺ったのは、株式会社サイバーエージェントの青野健利さんです。 青野さんのセッション「Deep dive into TypeScript」に関するスライド資料は、こちらで公開されています。 なお本稿のサンプルコードは、ほとんどが上記スライドから引用したものになります(一部説明を簡略化するため、青野さんの許可を得て筆者が書き換えた部分もあります)。 筆者からのお詫び: 今回のインタビュー、および対象セッションは大変内容が濃く、記事にすると長大になりすぎる&スライド資料
TypeScriptはMicrosoftが開発するプログラミング言語です。JavaScriptのスーパーセットという位置づけで、静的型付けなど強力な言語機能を備えています。TypeScriptは高度なウェブアプリケーションの開発で使われることが多く、Google社内の標準言語として2017年に採用されるなど、注目が高まっています(参考記事『Google社内の標準言語としてTypeScriptが承認される - Publickey』)。 ▲TypeScriptの公式サイト TypeScriptはコンパイラによってJavaScriptのコードが得られますが、TypeScriptのコンパイラにはECMAScript Modules(ES Modules = importやexport文のこと)をまとめる機能が提供されていません。そのため、ES ModulesのJSファイルをまとめるモジュールバンド
TypeScript2.6が出たので変更点を記載 RCからほぼ変更点がない。 Strict Function Typeフラグの導入 --strictFunctionTypesというフラグが導入される。 このフラグは--strictフラグに内包されており、--strictの場合は自動でONになるが、 --strictFunctionTypesをfalseにすることで個別にOFFにすることもできる。 動作 関数の引数に対するVarianceの動作を変更する。 TypeScriptの関数のVarianceについては以前下のスライドで説明したので参照。 speakerdeck.com 今回の--strictFunctionTypesフラグがONになると、関数がBivariantではなくてContravariantになる。 つまり以下のような代入が許可されなくなる。 class Animal { .
前回: ES6(ES2015)チートシート ES6に続いて、altJSの中でもひときわ勢いを感じるTypeScriptについて調べてみました。 概要 TypeScript = altJSの一種 オープンソース / マイクロソフト発 構文はJavaScript(ES5-6)と上位互換性がある ES6の構文はすべて使える 静的型付けによる型チェックができる点が特徴 その他、interface/enum/genericなど独自の機能が追加されている ES6と同様、開発時にjs(ES5)にトランスパイルすることで、ブラウザ上で実行できるようになる トランスパイルはnpmパッケージ(typescript)を使う 導入 試す(Playground) ブラウザ上でTypeScriptを書いて動かせるPlaygroundが公開されている。 http://www.typescriptlang.org/pla
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く