http://www.typescriptlang.org/
TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
前スレ
http://peace.2ch.net/test/read.cgi/tech/1349187527/
TypeScript part2 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2015/04/30(木) 18:37:29.98ID:ynMflk1l192デフォルトの名無しさん
2016/01/25(月) 14:01:32.82ID:ipEE3CyC >>191
そんなおかしいなら --moduleResolution の意味を言ってみてよ
そんなおかしいなら --moduleResolution の意味を言ってみてよ
193デフォルトの名無しさん
2016/01/25(月) 14:05:44.07ID:ipEE3CyC194デフォルトの名無しさん
2016/01/25(月) 14:22:21.52ID:ipEE3CyC http://qiita.com/vvakame/items/72d22e33632178f7db24
この人の↑これを見るのが一番まとまってて分かり易い
> ・declare module "hoge" 形式の定義は利用できない
って書いてあるけど実際はもう少し修正しないと駄目だった
とりあえず適当に修正すれば通るように出来るけど何が問題なのか
ドキュメントが見つからず確証が持ててない
この人の↑これを見るのが一番まとまってて分かり易い
> ・declare module "hoge" 形式の定義は利用できない
って書いてあるけど実際はもう少し修正しないと駄目だった
とりあえず適当に修正すれば通るように出来るけど何が問題なのか
ドキュメントが見つからず確証が持ててない
195デフォルトの名無しさん
2016/01/25(月) 17:21:06.80ID:FKcC8XYP みんなはcommonjs使うからハマらないっての
クイズじゃなくて何がしたくてできないのかのほうを書けよ
クイズじゃなくて何がしたくてできないのかのほうを書けよ
196デフォルトの名無しさん
2016/01/25(月) 19:30:10.53ID:ipEE3CyC197デフォルトの名無しさん
2016/01/25(月) 21:26:21.10ID:FKcC8XYP 貴殿の力量、拝察して候
198デフォルトの名無しさん
2016/01/26(火) 10:19:05.81ID:kKfPXzbs JavaScriptから来た人には歴史的経緯と後付モジュール機構は常識の部類なんだろうけど、他言語からくるとjs/tsのモジュール関係は病んでるよな
199デフォルトの名無しさん
2016/01/26(火) 14:10:10.49ID:pw0cS8Zr200デフォルトの名無しさん
2016/01/26(火) 14:24:44.17ID:pw0cS8Zr >>198
TypeScriptには内部モジュール(内部は造語)があって外部モジュールについては
あまり重要視されてなかった経緯があるからね
module→namespaceって名前を変えたけどmoduleキーワードは今も使える
もはや混乱の元でしかないし<<<reference file="hoge"/>ももはや役割を終えてるからなくした方がいいな
で、importの意味が1.6でしれっとそれより前の解釈と思いっきり変わってしまったのが混乱の元だ
とりあえずVSCodeのソースを見れば最近の*.tsの書き方が分かる
俺はそれ見て同じ書き方をしようとしてmodule,referenceから移行しようとして
importがトンでもない事になってる事にやっと気付いた
TypeScriptには内部モジュール(内部は造語)があって外部モジュールについては
あまり重要視されてなかった経緯があるからね
module→namespaceって名前を変えたけどmoduleキーワードは今も使える
もはや混乱の元でしかないし<<<reference file="hoge"/>ももはや役割を終えてるからなくした方がいいな
で、importの意味が1.6でしれっとそれより前の解釈と思いっきり変わってしまったのが混乱の元だ
とりあえずVSCodeのソースを見れば最近の*.tsの書き方が分かる
俺はそれ見て同じ書き方をしようとしてmodule,referenceから移行しようとして
importがトンでもない事になってる事にやっと気付いた
201デフォルトの名無しさん
2016/01/26(火) 14:38:18.32ID:HDdwtYdo requireからES6 modulesまでの変遷は確かに知らずに見ると混乱する
NodeのStreamAPIと違ってES6 modulesで古い情報にフィルタかけられるのが救い
NodeのStreamAPIと違ってES6 modulesで古い情報にフィルタかけられるのが救い
202デフォルトの名無しさん
2016/01/26(火) 15:03:49.80ID:pw0cS8Zr >>197みたいにNode.jsオンリーで歴史的経緯も知らずにnpm installだけして
使ってる人にはimportでハマルとか言ってる奴はプッっとしか思わないんだろうね
ま、そういう奴が居るって事は1.6の変更は意味があったといえる
俺は1.0ぐらいからブラウザ用にmodule,referenceでゴリゴリ書いてたから
移行するのがスゲー大変だった
しかし、お陰で汎用的な機能はNode.jsとブラウザの両方で使えるように
書けるようになったから移行する意味はあった(それにES6のmoduleにも対応してるはず)
使ってる人にはimportでハマルとか言ってる奴はプッっとしか思わないんだろうね
ま、そういう奴が居るって事は1.6の変更は意味があったといえる
俺は1.0ぐらいからブラウザ用にmodule,referenceでゴリゴリ書いてたから
移行するのがスゲー大変だった
しかし、お陰で汎用的な機能はNode.jsとブラウザの両方で使えるように
書けるようになったから移行する意味はあった(それにES6のmoduleにも対応してるはず)
203デフォルトの名無しさん
2016/01/27(水) 12:12:11.54ID:ChRzt0VQ webpackとか使うとjsの場合以下のようにtemplateとしてhtmlコードを取り込むことができますが、
```
export default {
template: require('./index.html'),
}
```
typeScript単体で使う場合で似たようなことをする方法ってありますか?
```
export default {
template: require('./index.html'),
}
```
typeScript単体で使う場合で似たようなことをする方法ってありますか?
204デフォルトの名無しさん
2016/01/27(水) 14:52:35.66ID:H1ToiAO7205デフォルトの名無しさん
2016/01/29(金) 14:25:20.13ID:EB80mx/+ https://twitter.com/bterlson/status/692489384654999552
ES2016 will likely not contain async functions.
ES2016 will likely not contain async functions.
206デフォルトの名無しさん
2016/01/29(金) 17:10:41.49ID:LlSYvxYC 安心してください、TypeScriptはasyncが使えます
207デフォルトの名無しさん
2016/02/05(金) 16:04:12.96ID:7HipHDXr TypeScript 1.8ベータにはJavaScript統合、シームレス関数コンポーネントなどが追加される
http://www.infoq.com/jp/news/2016/02/announcing-typescript-18
http://www.infoq.com/jp/news/2016/02/announcing-typescript-18
208デフォルトの名無しさん
2016/02/06(土) 01:27:25.39ID:Krz+De6m >>207
Announcing TypeScript 1.8 Beta
https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/
TypeScript 1.8.0-beta 変更点
http://qiita.com/vvakame/items/31f5c45ff49de67d5634
Announcing TypeScript 1.8 Beta
https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/
TypeScript 1.8.0-beta 変更点
http://qiita.com/vvakame/items/31f5c45ff49de67d5634
209デフォルトの名無しさん
2016/02/12(金) 11:57:21.91ID:tB/7lfI+ typeScriptでつくられたOSSなプロダクトって何があるのかな。
typeScriptの勉強に使えそうな手軽なサイズのものがいいんですが
特にVSC以外で
typeScriptの勉強に使えそうな手軽なサイズのものがいいんですが
特にVSC以外で
210デフォルトの名無しさん
2016/02/12(金) 12:46:41.49ID:whWT7zC/ vs版1.7.6を入れたのにバージョン情報では
1.7.5と表示されるんだけどミスってる?
npm installでも1.7.5だった
1.7.5と表示されるんだけどミスってる?
npm installでも1.7.5だった
211デフォルトの名無しさん
2016/02/12(金) 21:36:59.74ID:tB/7lfI+ typeScriptでWebWorkerのコードを書こうとするとpostMessage関数で怒られるんです。
onmessage = function(e) {
console.log('Message received from main script');
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
console.log('Posting message back to main script');
postMessage(workerResult); //<―ここ
}
error TS2346: Supplied parameters do not match any signature of call target.
パラメータがあってないって話なんですが定義を見てみると
declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
とありtargetOriginが必要みたいな記述になっています
定義の参照先が違うせいだと思うんですが直し方がわかりません。ご教示下さい
参考
https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workers
onmessage = function(e) {
console.log('Message received from main script');
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
console.log('Posting message back to main script');
postMessage(workerResult); //<―ここ
}
error TS2346: Supplied parameters do not match any signature of call target.
パラメータがあってないって話なんですが定義を見てみると
declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
とありtargetOriginが必要みたいな記述になっています
定義の参照先が違うせいだと思うんですが直し方がわかりません。ご教示下さい
参考
https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workers
212デフォルトの名無しさん
2016/02/12(金) 22:34:57.47ID:0bFQuZrs ES以外の定義が違うなら自分でプルリク出さないと直らないぞ
DOM周りは基本放置だからな
DOM周りは基本放置だからな
213デフォルトの名無しさん
2016/02/12(金) 23:19:19.89ID:DcD4rrQS 1.7.5に入ってるlib.webworker.d.tsには
WorkerインターフェースにpostMessage(message: any, ports?: any): void
グローバルにpostMessage(data: any): void
ってなってるけど
WorkerインターフェースにpostMessage(message: any, ports?: any): void
グローバルにpostMessage(data: any): void
ってなってるけど
214デフォルトの名無しさん
2016/02/13(土) 12:50:38.42ID:SL3t4ard >>213
先頭行に
/// <reference path="lib.webworker.d.ts" />
と入れてもエラーが出るんですが、どうすればいいんでしょう
error TS6053: File 'lib.webworker.d.ts' not found.
先頭行に
/// <reference path="lib.webworker.d.ts" />
と入れてもエラーが出るんですが、どうすればいいんでしょう
error TS6053: File 'lib.webworker.d.ts' not found.
215デフォルトの名無しさん
2016/02/13(土) 16:34:47.12ID:DMjW/lz+216デフォルトの名無しさん
2016/02/13(土) 16:42:47.45ID:DMjW/lz+ いや間違えた…
window.postMessage以外は第2引数が省略可能だな
ただwindow.postMessageも第2引数を省略すると"*"が指定された時と同じ動作をするように
ブラウザが勝手に対応してるっぽいな
格オブジェクト毎に微妙に役割りが違うものを全部一緒くたにpostMessageにしてるから
結構ややこしい事になってるな…
とりあえず>>214はwindow.postMessageを使ってるのであれば
第2引数に"*"を指定すればいいはずだよ
window.postMessage以外は第2引数が省略可能だな
ただwindow.postMessageも第2引数を省略すると"*"が指定された時と同じ動作をするように
ブラウザが勝手に対応してるっぽいな
格オブジェクト毎に微妙に役割りが違うものを全部一緒くたにpostMessageにしてるから
結構ややこしい事になってるな…
とりあえず>>214はwindow.postMessageを使ってるのであれば
第2引数に"*"を指定すればいいはずだよ
217デフォルトの名無しさん
2016/02/13(土) 16:44:08.08ID:DMjW/lz+ 格オブジェクト→各オブジェクト 念の為…連投スマン
218デフォルトの名無しさん
2016/02/13(土) 17:00:54.46ID:DMjW/lz+ 何度もごめん
やっと本質が理解できた
根本的な解決には2.0にならないとダメらしいな
それまではpostMessageには"*"とかundefinedを指定して誤魔化すのが一番手っ取り早い
やっと本質が理解できた
根本的な解決には2.0にならないとダメらしいな
それまではpostMessageには"*"とかundefinedを指定して誤魔化すのが一番手っ取り早い
219デフォルトの名無しさん
2016/02/14(日) 10:23:55.62ID:+Fbk6tbu いえ。聞きたいことは
golobalscopeの参照先を lib.webworker.d.ts
にしたいわけです。
```
new Wroker(“./worker.js”); // <―ここのworker.js内のグローバルスコープをなんとかしたい
```
上記のように別スレッドでwroker.jsを動かすわけですけど、
worker.js内のグローバルスコープはdocumetにアクセスできなかったり独自のものみたいです。
それで参照先を lib.webworker.d.tsにしたくて/// <reference path="lib.webworker.d.ts" />としても
ファイルがないと怒られます。
typescript自身が持っているd.tsファイルに対してのリファレンスの貼り方を教えていただきたいのです。
golobalscopeの参照先を lib.webworker.d.ts
にしたいわけです。
```
new Wroker(“./worker.js”); // <―ここのworker.js内のグローバルスコープをなんとかしたい
```
上記のように別スレッドでwroker.jsを動かすわけですけど、
worker.js内のグローバルスコープはdocumetにアクセスできなかったり独自のものみたいです。
それで参照先を lib.webworker.d.tsにしたくて/// <reference path="lib.webworker.d.ts" />としても
ファイルがないと怒られます。
typescript自身が持っているd.tsファイルに対してのリファレンスの貼り方を教えていただきたいのです。
220デフォルトの名無しさん
2016/02/14(日) 10:35:21.09ID:wvAk6z1k >>219
https://github.com/Microsoft/TypeScript/wiki/Roadmap
の2.0にあるImprove lib.d.ts modularityがそれを簡単にやる為のものらしい
要するに今のところそういう事が簡単に出来無いってこと
http://blog.scottlogic.com/2015/08/10/ts-vs-proj.html
この辺に一応回避方法が書いてあるよ
https://github.com/Microsoft/TypeScript/wiki/Roadmap
の2.0にあるImprove lib.d.ts modularityがそれを簡単にやる為のものらしい
要するに今のところそういう事が簡単に出来無いってこと
http://blog.scottlogic.com/2015/08/10/ts-vs-proj.html
この辺に一応回避方法が書いてあるよ
221デフォルトの名無しさん
2016/02/14(日) 13:52:50.82ID:+Fbk6tbu222デフォルトの名無しさん
2016/02/14(日) 17:38:32.66ID:lb9byLOu いい方法が見つかるまではtsconfig.jsonの"files"にlib.*.d.tsのパスを入れておけばいいよ
tsconfig.jsonの書き方と使い方は公式Wiki参照
tsconfig.jsonの書き方と使い方は公式Wiki参照
223デフォルトの名無しさん
2016/02/19(金) 17:13:14.79ID:YBiR9mLr NonNullableきたこれでかつる
224デフォルトの名無しさん
2016/02/23(火) 10:35:12.67ID:6s2CAaJ0 Announcing TypeScript 1.8
https://blogs.msdn.microsoft.com/typescript/2016/02/22/announcing-typescript-1-8-2/
https://blogs.msdn.microsoft.com/typescript/2016/02/22/announcing-typescript-1-8-2/
225デフォルトの名無しさん
2016/02/23(火) 11:46:00.00ID:UPC5owG9 >>224 おつ
TypeScript for Visual Studio 2015 は Details > Releases から 1.8.4 を選ばないと
以前のものがダウンロードされるので注意。
あと Visual Studio Code のインテリセンス等の挙動は
tscへのパスの差し替えだけでは完璧ではないぽい。なにか方法があるかもしれないが
TypeScript for Visual Studio 2015 は Details > Releases から 1.8.4 を選ばないと
以前のものがダウンロードされるので注意。
あと Visual Studio Code のインテリセンス等の挙動は
tscへのパスの差し替えだけでは完璧ではないぽい。なにか方法があるかもしれないが
226デフォルトの名無しさん
2016/02/23(火) 12:25:15.11ID:MgSDdSDU VSCodeは自前でtsserver.jsを持ってるからそれを差し替えないと駄目でしょ
下手に差し替えないでバージョンアップを待てばいいんじゃね?
すぐするでしょ
下手に差し替えないでバージョンアップを待てばいいんじゃね?
すぐするでしょ
227デフォルトの名無しさん
2016/02/23(火) 12:28:20.34ID:MgSDdSDU ちなみにメインで使ってるわけじゃないけど、なんかVSCodeって使いづらいような気がしてきた
バージョンアップで改善されてくとは思うけど、メインで使ってる人は使い心地がどうなのか知りたい
バージョンアップで改善されてくとは思うけど、メインで使ってる人は使い心地がどうなのか知りたい
228デフォルトの名無しさん
2016/02/24(水) 19:37:32.88ID:cGyLx1gy for (let i = ...) は許されるのに
if (let o = ...) や while (let ...) が許されないのは仕様でしょうか?
nullスキップをしたいときにこの書式を使いたい場合が結構あるのですが
if (let o = ...) や while (let ...) が許されないのは仕様でしょうか?
nullスキップをしたいときにこの書式を使いたい場合が結構あるのですが
229デフォルトの名無しさん
2016/02/24(水) 21:55:18.34ID:aRwJuOw8 仕様。仕様書見れば書いてあるよ
let o;
if (o = ...) と書いても結果は変わらないと思う
o がブロックの外に漏れるというだけで
let o;
if (o = ...) と書いても結果は変わらないと思う
o がブロックの外に漏れるというだけで
230デフォルトの名無しさん
2016/02/24(水) 23:27:54.96ID:cGyLx1gy231デフォルトの名無しさん
2016/02/25(木) 10:03:46.85ID:pumiDuUu >>230
仕様ってのはecma262(JavaScript)の事ね
TypeScriptはJavaScript(主にES6以降)+型だからJavaScriptの文法を壊すような
機能追加はしちゃ駄目だと思うし、そういうのはほとんど無いと思う
仕様ってのはecma262(JavaScript)の事ね
TypeScriptはJavaScript(主にES6以降)+型だからJavaScriptの文法を壊すような
機能追加はしちゃ駄目だと思うし、そういうのはほとんど無いと思う
232デフォルトの名無しさん
2016/03/03(木) 15:07:54.17ID:RrjC3Y1y chrome extensionの開発にtypeScript使っています。
型があるとドキュメントを見なくてもメソッドとかプロパティを探せるので
捗ります。
本当にES2015 + type って感じなんですね。そんなに仕様が分かっていなくても何となく使えるのがいいです。
一つお聞きしたいのですが
Node型からlengthプロパティを使いたいのですが
参照先にlib.d.tsにはないみたいでエラーなります。
chromeデバッカでは見えているのですが、、、
とりあえず以下のように回避しているんですが
const selection = window.getSelection()
(<any> selection.focusNode).length
本来の対応方針を教えて下さい。
例えばどこかに専用のファイルを作ってそこで
interface Node {
}
自分用のinterfaceを作るとかですかね?
型があるとドキュメントを見なくてもメソッドとかプロパティを探せるので
捗ります。
本当にES2015 + type って感じなんですね。そんなに仕様が分かっていなくても何となく使えるのがいいです。
一つお聞きしたいのですが
Node型からlengthプロパティを使いたいのですが
参照先にlib.d.tsにはないみたいでエラーなります。
chromeデバッカでは見えているのですが、、、
とりあえず以下のように回避しているんですが
const selection = window.getSelection()
(<any> selection.focusNode).length
本来の対応方針を教えて下さい。
例えばどこかに専用のファイルを作ってそこで
interface Node {
}
自分用のinterfaceを作るとかですかね?
233デフォルトの名無しさん
2016/03/03(木) 15:39:48.75ID:tDWJCpRY234デフォルトの名無しさん
2016/03/03(木) 17:00:58.63ID:RZS145YN babelとtypescriptって何が違うの?
あとes6が普及したらtypescript使う意味ってなくならない?
あとes6が普及したらtypescript使う意味ってなくならない?
235デフォルトの名無しさん
2016/03/03(木) 17:04:13.70ID:RrjC3Y1y236デフォルトの名無しさん
2016/03/03(木) 17:11:25.26ID:RrjC3Y1y >>234
ES2015 + 型という図式です。
VSCとかと連携すると補完が聞いて素敵です。
EcmaScriptに型が付く予定はないと思うので差別化はできているのではないでしょうか?
逆に言語として学習コストが低くていいのではないかと(ES2015とあんまり変わらない点)。
特に新規のライブラリを使うときはEditorが教えてくれるので、凄くいいです。
ES2015 + 型という図式です。
VSCとかと連携すると補完が聞いて素敵です。
EcmaScriptに型が付く予定はないと思うので差別化はできているのではないでしょうか?
逆に言語として学習コストが低くていいのではないかと(ES2015とあんまり変わらない点)。
特に新規のライブラリを使うときはEditorが教えてくれるので、凄くいいです。
237デフォルトの名無しさん
2016/03/03(木) 17:29:33.07ID:tDWJCpRY238デフォルトの名無しさん
2016/03/03(木) 18:49:06.70ID:9M5RRL5I239デフォルトの名無しさん
2016/03/04(金) 16:37:36.83ID:5mk497Pl ちなみにjQueryでDOMをいじくるのが主な目的の人には向かないね
jquery.d.tsがany使いまくりだから素直にJavaScriptをそのまま使う事を勧める
それとDOMはJavaScriptとして使ってる内は気付かないけど
実はかなり型が複雑で理解してないと>>232みたいな問題にぶつかる
悪いのはTypeScriptではなくて元の仕様がそうなってる
直接DOMをいじる場合も型をちゃんと全部把握するかJavaScriptをそのまま使う方がいい
jquery.d.tsがany使いまくりだから素直にJavaScriptをそのまま使う事を勧める
それとDOMはJavaScriptとして使ってる内は気付かないけど
実はかなり型が複雑で理解してないと>>232みたいな問題にぶつかる
悪いのはTypeScriptではなくて元の仕様がそうなってる
直接DOMをいじる場合も型をちゃんと全部把握するかJavaScriptをそのまま使う方がいい
240デフォルトの名無しさん
2016/03/04(金) 17:04:24.90ID:JX9S2zww241デフォルトの名無しさん
2016/03/04(金) 17:55:19.19ID:5mk497Pl >>240
いやいや、例えばgetElementById()で返すのはHTMLElementだけど
これはlib.d.tsでextends HTMLElement検索すると分かるけど、全てのベースクラスだから
使う時は毎回適切にキャストする必要があって面倒臭い
で、間違うとコンパイルエラーとか実行時エラーになる
ちなみにjQueryとDOMでの話であって一般的には型があった方がいいのはその通り
いやいや、例えばgetElementById()で返すのはHTMLElementだけど
これはlib.d.tsでextends HTMLElement検索すると分かるけど、全てのベースクラスだから
使う時は毎回適切にキャストする必要があって面倒臭い
で、間違うとコンパイルエラーとか実行時エラーになる
ちなみにjQueryとDOMでの話であって一般的には型があった方がいいのはその通り
242デフォルトの名無しさん
2016/03/04(金) 20:45:00.83ID:JX9S2zww243デフォルトの名無しさん
2016/03/04(金) 20:49:58.95ID:JX9S2zww “error TS2304: Cannot find name” の対応ってどうされてますか?
例えばchrome Extension作りたくて chrome.d.tsを用意したんですが
RROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5221,70): error TS2304: Cannot find name 'DirectoryEntry'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5807,22): error TS2304: Cannot find name 'MediaStreamConstraints'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5809,22): error TS2304: Cannot find name 'MediaStreamConstraints'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5819,73): error TS2304: Cannot find name 'MediaStream'.
以下の様なエラーメッセージが出ます。
それで依存している型定義ファイルを探して追加するとまたこのエラーメッセージが増えていくので
該当箇所をanyとかにしてごまかしているんですが、
本来の対応方針としてどうすればいいんでしょうか?
例えばchrome Extension作りたくて chrome.d.tsを用意したんですが
RROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5221,70): error TS2304: Cannot find name 'DirectoryEntry'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5807,22): error TS2304: Cannot find name 'MediaStreamConstraints'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5809,22): error TS2304: Cannot find name 'MediaStreamConstraints'.
ERROR in …/typings/browser/ambient/chrome/chrome.d.ts
(5819,73): error TS2304: Cannot find name 'MediaStream'.
以下の様なエラーメッセージが出ます。
それで依存している型定義ファイルを探して追加するとまたこのエラーメッセージが増えていくので
該当箇所をanyとかにしてごまかしているんですが、
本来の対応方針としてどうすればいいんでしょうか?
244デフォルトの名無しさん
2016/03/04(金) 23:31:41.69ID:QtC/Wo3p >>243
chrome.d.ts ってこれか? https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/chrome/chrome.d.ts
コードの頭に参照があるから /// <reference path='../filesystem/filesystem.d.ts' />
このあたりが必要なのでは https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/filesystem/filesystem.d.ts
よくわからんが DefinitelyTyped を丸ごともらうか、<reference> それぞれを探してみては?
chrome.d.ts ってこれか? https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/chrome/chrome.d.ts
コードの頭に参照があるから /// <reference path='../filesystem/filesystem.d.ts' />
このあたりが必要なのでは https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/filesystem/filesystem.d.ts
よくわからんが DefinitelyTyped を丸ごともらうか、<reference> それぞれを探してみては?
245デフォルトの名無しさん
2016/03/05(土) 10:47:09.14ID:E0f29hr+ コード中でキャストしないようにと思うと
interface Document { getElementById(id: 'myElement'): HTMLAnchorElement; }
みたいな定義を読ませておくしかないよね
interface Document { getElementById(id: 'myElement'): HTMLAnchorElement; }
みたいな定義を読ませておくしかないよね
246デフォルトの名無しさん
2016/03/05(土) 12:33:38.03ID:jb1F0oyu247デフォルトの名無しさん
2016/03/05(土) 14:42:35.70ID:GXDl5hqY248デフォルトの名無しさん
2016/03/05(土) 15:53:12.74ID:JVykV3V4 とりあえずAngular2+TypeScriptを使えば全てが丸く収まる(はず)
249デフォルトの名無しさん
2016/03/09(水) 02:26:14.01ID:YWG9oDIr250デフォルトの名無しさん
2016/03/09(水) 13:38:59.08ID:YZujmLFz C,C++などの
#ifdef ABC
#endif
みたない構文はありますか?
#ifdef ABC
#endif
みたない構文はありますか?
251デフォルトの名無しさん
2016/03/09(水) 13:55:35.24ID:wC8YUP1c >>250
ない。
もし不要なコードの排除が目的なら、単にif文を使っておいて、
出力した .js に Closure Compiler 等の最適化を行うポストプロセスすると
最終的な .min.js からは無駄なコードを消してくれる場合もある。
ない。
もし不要なコードの排除が目的なら、単にif文を使っておいて、
出力した .js に Closure Compiler 等の最適化を行うポストプロセスすると
最終的な .min.js からは無駄なコードを消してくれる場合もある。
252デフォルトの名無しさん
2016/03/09(水) 14:19:18.40ID:YZujmLFz >>251
なるほど。
でも、さっそく
if(false){
... // 不要なコード
}
としてみたら、
Unreachable code detected.
と出ました。
var use= false;
if (use == true) {
... // 不要なコード
}
で行けました。こんなやり方おかしいですか?
Closure Compiler はビルド後に実行するコマンドでやるのでしょうか?
なるほど。
でも、さっそく
if(false){
... // 不要なコード
}
としてみたら、
Unreachable code detected.
と出ました。
var use= false;
if (use == true) {
... // 不要なコード
}
で行けました。こんなやり方おかしいですか?
Closure Compiler はビルド後に実行するコマンドでやるのでしょうか?
253デフォルトの名無しさん
2016/03/09(水) 15:24:10.02ID:wC8YUP1c >>252
そんな感じでおk。var vs. const や == vs. === 等は
ポストプロセスとの相性があるだろうから試してくれ。
useの定義だけ単品のファイルにしてtsconfig.jsonで切り替えると良いかも。
もちろんtscの後に実行する。やり方はビルドツール次第。
デバッグ中はminifyされると面倒だから、リリース時だけ使うといい。
そんな感じでおk。var vs. const や == vs. === 等は
ポストプロセスとの相性があるだろうから試してくれ。
useの定義だけ単品のファイルにしてtsconfig.jsonで切り替えると良いかも。
もちろんtscの後に実行する。やり方はビルドツール次第。
デバッグ中はminifyされると面倒だから、リリース時だけ使うといい。
254デフォルトの名無しさん
2016/03/09(水) 20:12:15.23ID:YZujmLFz255デフォルトの名無しさん
2016/03/09(水) 20:52:59.74ID:YZujmLFz 関数のオーバーロードは、
function f(x: number):void;
function f(x: string): void;
function f(x: any): void {
...
}
とやるようですが、引数を取らない同名の関数も一緒に定義したいのですが、
function f():void;
これを上の定義に追加するとエラーします。
どうすれば良いですか?
function f(x: number):void;
function f(x: string): void;
function f(x: any): void {
...
}
とやるようですが、引数を取らない同名の関数も一緒に定義したいのですが、
function f():void;
これを上の定義に追加するとエラーします。
どうすれば良いですか?
256デフォルトの名無しさん
2016/03/09(水) 21:30:41.53ID:0Gq8vrNb257デフォルトの名無しさん
2016/03/09(水) 21:32:56.87ID:0Gq8vrNb 古い書き方でやりたい場合は
function f(x?: number):void;
function f(x?: string): void;
function f(x?: any): void {
で出来る
function f(x?: number):void;
function f(x?: string): void;
function f(x?: any): void {
で出来る
258デフォルトの名無しさん
2016/03/10(木) 10:54:45.09ID:z40A+Y3k >>256>>257
うまくいったわ。ありがとう。
もう一つ教えて。Visual StudioでTypeScript勉強中なのだが、
function f(){
...
return ;
...
}
とreturn入れると、
Unreachable code detected.
のエラーになってしまう。
JavaScriptなら警告だけなのに。
エラーになると実行出来ないのだが、対策ありますか?
うまくいったわ。ありがとう。
もう一つ教えて。Visual StudioでTypeScript勉強中なのだが、
function f(){
...
return ;
...
}
とreturn入れると、
Unreachable code detected.
のエラーになってしまう。
JavaScriptなら警告だけなのに。
エラーになると実行出来ないのだが、対策ありますか?
259デフォルトの名無しさん
2016/03/10(木) 11:13:40.34ID:la5WEUke >>258
--allowUnreachableCode
tsconfig.json に書くなら "allowUnreachableCode": true
テスト用の一時的変更でない限り、高確率でバグだろうからな
--allowUnreachableCode
tsconfig.json に書くなら "allowUnreachableCode": true
テスト用の一時的変更でない限り、高確率でバグだろうからな
260デフォルトの名無しさん
2016/03/10(木) 13:16:14.83ID:z40A+Y3k >>259
レスありがとうございます。
ググったらVS2013ではtsconfig.jsonが使えない?
ようなんですが、どうにかして
allowUnreachableCode を有効化する方法ありますか?
レスありがとうございます。
ググったらVS2013ではtsconfig.jsonが使えない?
ようなんですが、どうにかして
allowUnreachableCode を有効化する方法ありますか?
261デフォルトの名無しさん
2016/03/14(月) 07:46:17.33ID:CkOIJo3B JavaScriptの10個くらいのファイルがあり、それをTypeScript化したいのです。
全部のファイルで、同じmodule名で囲ったら、互いに変数や関数を参照出来ると思ったのですが、出来ませんでした。
TypeScriptではC#で言うところのPartial Classみたいにする方法ありますか?
全部のファイルで、同じmodule名で囲ったら、互いに変数や関数を参照出来ると思ったのですが、出来ませんでした。
TypeScriptではC#で言うところのPartial Classみたいにする方法ありますか?
262デフォルトの名無しさん
2016/03/14(月) 08:26:19.76ID:rt0F/u0o >>261
module/namespaceのexportしてないオブジェクトはローカル変数になるからできないね。
他のファイルから使いたいならexportするしかない。外部に公開されちゃうけど。
Partial Classについては、インスタンスなりprototypeなりに関数を代入すれば
似たようなことはできるけど、thisやsuperが扱えないかもしれないな。
インタフェースと declare var の組み合わせは代わりになるだろうか? lib.d.tsを参考に。
module/namespaceのexportしてないオブジェクトはローカル変数になるからできないね。
他のファイルから使いたいならexportするしかない。外部に公開されちゃうけど。
Partial Classについては、インスタンスなりprototypeなりに関数を代入すれば
似たようなことはできるけど、thisやsuperが扱えないかもしれないな。
インタフェースと declare var の組み合わせは代わりになるだろうか? lib.d.tsを参考に。
263デフォルトの名無しさん
2016/03/14(月) 10:05:23.83ID:WJ0CXY/9 JavaScriptの方で擬似的に名前空間化されていないものに
後からnamespaceで囲う必要はないと思う
partial classは実行時に実現できたとしてもclass内部の型定義が不完全になるでしょ
interfaceはいくつでも同名で定義できるので、全てpartialのようなもの
後からnamespaceで囲う必要はないと思う
partial classは実行時に実現できたとしてもclass内部の型定義が不完全になるでしょ
interfaceはいくつでも同名で定義できるので、全てpartialのようなもの
264デフォルトの名無しさん
2016/03/14(月) 14:40:23.18ID:CkOIJo3B >>262 >>263
詳しい説明ありがとうございました。
>JavaScriptの方で擬似的に名前空間化されていないものに
>後からnamespaceで囲う必要はないと思う
JSのファイルは全部で50個くらいあり、
全部をTS化したいのです。
それで、取りあえず、ある特定の機能に関連している10ファイルを一つにしたくて、
同じmodule名で囲ってみました。
結局、その10ファイルの中でも互いに利用する関数はそれぞれexportして互いに利用し、
一方グローバル変数は一つのTSファイルに集めてそれらを全部exportして10個のTSや、他のJSファイルの中で利用しました。
こういう方針でやるのは、正統的ではないですか?
正しい手法があれば教えて下さい。
詳しい説明ありがとうございました。
>JavaScriptの方で擬似的に名前空間化されていないものに
>後からnamespaceで囲う必要はないと思う
JSのファイルは全部で50個くらいあり、
全部をTS化したいのです。
それで、取りあえず、ある特定の機能に関連している10ファイルを一つにしたくて、
同じmodule名で囲ってみました。
結局、その10ファイルの中でも互いに利用する関数はそれぞれexportして互いに利用し、
一方グローバル変数は一つのTSファイルに集めてそれらを全部exportして10個のTSや、他のJSファイルの中で利用しました。
こういう方針でやるのは、正統的ではないですか?
正しい手法があれば教えて下さい。
265デフォルトの名無しさん
2016/03/14(月) 15:30:12.67ID:rt0F/u0o たまたま見つけてタイムリーだったので張っておく。現実装に依存しすぎだとは思うが。
> TypeScriptのクラスをnamespaceで拡張する
ttp://qiita.com/ConquestArrow/items/5d885128f896844698dd
複数ファイルから成る出力全体をモジュールで包む機能って無いんだっけ?
単に function() { ... } で囲んでくれるだけで良いんだけれど。
モジュール内部の各所では使うものの、外部からアクセスする必要のないものはローカル化したい。
> TypeScriptのクラスをnamespaceで拡張する
ttp://qiita.com/ConquestArrow/items/5d885128f896844698dd
複数ファイルから成る出力全体をモジュールで包む機能って無いんだっけ?
単に function() { ... } で囲んでくれるだけで良いんだけれど。
モジュール内部の各所では使うものの、外部からアクセスする必要のないものはローカル化したい。
266デフォルトの名無しさん
2016/03/14(月) 15:55:47.88ID:sQIOa7FM 最近はもうnamespaceを使うのはお勧め出来ないな。ES6の機能にないし
https://blogs.msdn.microsoft.com/typescript/2016/02/22/announcing-typescript-1-8-2/
この最初に書いてある方法がclassを拡張するには今時の方法なんじゃないかな?
ES6のmoduleは1ファイル1モジュールな感じだから全部のファイルを特定のモジュール名で括るという
考えは捨てるべきだと思われる
メインのファイルがそのほかを全部importして必要なものをexportするべきだろうね
https://blogs.msdn.microsoft.com/typescript/2016/02/22/announcing-typescript-1-8-2/
この最初に書いてある方法がclassを拡張するには今時の方法なんじゃないかな?
ES6のmoduleは1ファイル1モジュールな感じだから全部のファイルを特定のモジュール名で括るという
考えは捨てるべきだと思われる
メインのファイルがそのほかを全部importして必要なものをexportするべきだろうね
267デフォルトの名無しさん
2016/03/14(月) 22:56:12.42ID:CkOIJo3B268デフォルトの名無しさん
2016/03/15(火) 19:08:51.76ID:oaSHh/yi269デフォルトの名無しさん
2016/03/15(火) 20:09:42.73ID:9cVBtkdm どうでもいい
270デフォルトの名無しさん
2016/03/16(水) 00:53:23.89ID:dOYh+a0T どうでも良くない
271デフォルトの名無しさん
2016/03/16(水) 01:11:40.10ID:Tb17X3fe typeScriptと相性かいいフレームワークってどんなのがあります。?
vue.jsと比べるとreactはかなり良さ気なんですが
vue.jsと比べるとreactはかなり良さ気なんですが
272デフォルトの名無しさん
2016/03/16(水) 13:03:38.46ID:/Zyxq7hl Angular2かな
まだベータ版だけどTypeScriptとの親和性は抜群というかAngular2自体がTypeScriptで作られてる
だから*.d.tsが要らない
あと最終的にはテンプレート文字列内まで補完が効くようになるらしい
まだベータ版だけどTypeScriptとの親和性は抜群というかAngular2自体がTypeScriptで作られてる
だから*.d.tsが要らない
あと最終的にはテンプレート文字列内まで補完が効くようになるらしい
273デフォルトの名無しさん
2016/03/17(木) 02:25:53.34ID:ybZd+XDK namespaceとmoduleの違いが分かりません。
ほとんど同じようなものだと思ってもいいですか?
ほとんど同じようなものだと思ってもいいですか?
274デフォルトの名無しさん
2016/03/17(木) 09:53:47.06ID:U5XyTqUO >>272
googleとmsの共同作品みたいなものですね。
reactと比較してのメリットはフルスタックなところですねー。
facebookもflowとか独自にやらずにtypeScript使ってくれればいいのに。
デメリットは学習コストなんですよねー。正直angular1で挫折したので、、、、
typeScript作のフレームワークとかライブラリって他に何がありますかねー?
googleとmsの共同作品みたいなものですね。
reactと比較してのメリットはフルスタックなところですねー。
facebookもflowとか独自にやらずにtypeScript使ってくれればいいのに。
デメリットは学習コストなんですよねー。正直angular1で挫折したので、、、、
typeScript作のフレームワークとかライブラリって他に何がありますかねー?
275デフォルトの名無しさん
2016/03/17(木) 10:41:50.84ID:FCgg2gkL >>273
最初はmoduleしかなかったがTypeScriptのmoduleはJavaScript界隈のモジュールと
違ってnamespaceに近いものだから、後からmoduleの別名でnamespaceが追加された
要するに全く同じもの
そしてmoduleはobsoleteな感じだったが、1.8でまた蒸し返された感じだな
最初はmoduleしかなかったがTypeScriptのmoduleはJavaScript界隈のモジュールと
違ってnamespaceに近いものだから、後からmoduleの別名でnamespaceが追加された
要するに全く同じもの
そしてmoduleはobsoleteな感じだったが、1.8でまた蒸し返された感じだな
276デフォルトの名無しさん
2016/03/17(木) 10:48:46.56ID:ybZd+XDK277デフォルトの名無しさん
2016/03/17(木) 11:30:44.99ID:FCgg2gkL >>276
言い方がまずかったかもしれん…迷走ではない
Ambient Modulesと呼ばれている機能が少し拡張されただけだ
moduleと1.8で拡張されたdeclare moduleは似てはいるが別モンと考えた方が良かったな
ただのmoduleはnamespaceに置き換えた方が誤解が少なくていいと思うが
declare moduleはモジュール定義を書くものだから必要なものだった
言い方がまずかったかもしれん…迷走ではない
Ambient Modulesと呼ばれている機能が少し拡張されただけだ
moduleと1.8で拡張されたdeclare moduleは似てはいるが別モンと考えた方が良かったな
ただのmoduleはnamespaceに置き換えた方が誤解が少なくていいと思うが
declare moduleはモジュール定義を書くものだから必要なものだった
278デフォルトの名無しさん
2016/03/17(木) 14:17:48.80ID:LtlKgYTa playgroundから補完効くの気持ちいいんですけど、
外部ライブラリも取り込めるタイプのやつって無いですかね?
外部ライブラリも取り込めるタイプのやつって無いですかね?
279デフォルトの名無しさん
2016/03/17(木) 19:50:11.64ID:ybZd+XDK http://stackoverflow.com/questions/12802383/extending-array-in-typescript
にある例
interface Array<T> {
remove(o: T): Array<T>;
}
Array.prototype.remove = function (o) {
// code to remove "o"
return this;
}
のようにして配列に対してremoveというのを追加したいのですが、実際にやると
Property 'remove' does not exist on type 'any[]'
と出ます。何がおかしいでしょうか?
VS2015のTypeScriptです。
にある例
interface Array<T> {
remove(o: T): Array<T>;
}
Array.prototype.remove = function (o) {
// code to remove "o"
return this;
}
のようにして配列に対してremoveというのを追加したいのですが、実際にやると
Property 'remove' does not exist on type 'any[]'
と出ます。何がおかしいでしょうか?
VS2015のTypeScriptです。
280デフォルトの名無しさん
2016/03/17(木) 21:18:45.36ID:FCgg2gkL >>279
呼び出してるとこも書かないとそれだけじゃ分からん
呼び出してるとこも書かないとそれだけじゃ分からん
281デフォルトの名無しさん
2016/03/17(木) 23:01:06.58ID:ybZd+XDK >>280
呼び出す以前に、
Array.prototype.remove = function (o) {
^^^^^
このremoveの部分で上記のエラーメッセージが出ます。
もし理由や対策が分かれば教えて下さい。
呼び出す以前に、
Array.prototype.remove = function (o) {
^^^^^
このremoveの部分で上記のエラーメッセージが出ます。
もし理由や対策が分かれば教えて下さい。
282デフォルトの名無しさん
2016/03/17(木) 23:19:57.85ID:2Htg2ogu >>281
Playgroundなら動くように見えるが、これでいいのか?
http://tiny.cc/1fw49x
tscのバージョンとかビルドオプションにも関係するかもしれない。
型チェックを厳しくすると文句を言われる気がする。
その場合は any にキャストして黙らせるんだろうけど。
Playgroundなら動くように見えるが、これでいいのか?
http://tiny.cc/1fw49x
tscのバージョンとかビルドオプションにも関係するかもしれない。
型チェックを厳しくすると文句を言われる気がする。
その場合は any にキャストして黙らせるんだろうけど。
283デフォルトの名無しさん
2016/03/18(金) 01:21:57.61ID:xSPdqn8L284デフォルトの名無しさん
2016/03/18(金) 08:30:08.17ID:lH6dzSdk285デフォルトの名無しさん
2016/03/18(金) 09:44:04.92ID:UW/nCw4W286デフォルトの名無しさん
2016/03/18(金) 13:56:17.03ID:+/FU+lPG287デフォルトの名無しさん
2016/03/19(土) 10:14:16.49ID:iKSB+QiN288デフォルトの名無しさん
2016/03/19(土) 12:41:33.04ID:MNmjmgAA289デフォルトの名無しさん
2016/03/21(月) 08:15:39.14ID:O7DG3syI typeScriptでVSCのextension作りたいんですけど
動作の挙動を見るのに既存のextensionをデバッガで動かしています。
でもVSC自体がそのextensionを使っているとバッティングして上手く動かないので
別プロファイルみたいにして動かしたいんです。
でも、そういう起動オプションが見つからなくて困っています。
お助け下さい。
動作の挙動を見るのに既存のextensionをデバッガで動かしています。
でもVSC自体がそのextensionを使っているとバッティングして上手く動かないので
別プロファイルみたいにして動かしたいんです。
でも、そういう起動オプションが見つからなくて困っています。
お助け下さい。
290デフォルトの名無しさん
2016/03/22(火) 00:21:22.49ID:uAieVvDE typeScriptのOptional型ってswiftのそれとは全然違うような。
interfaceのメンバにしか?使えないの?
返却値もoptional使いたい
interfaceのメンバにしか?使えないの?
返却値もoptional使いたい
291デフォルトの名無しさん
2016/03/22(火) 01:42:45.61ID:gYAdXehO >>290
Swiftとは違うね。単に省略を許すだけ。
TypeScriptではすべての変数がOptional型といえる。
numberを返すと宣言した関数からでも、nullとundefinedは返せてしまう。
ロードマップにある 2.0 Non-nullable types が導入されればマシになるとは思う。
Swiftとは違うね。単に省略を許すだけ。
TypeScriptではすべての変数がOptional型といえる。
numberを返すと宣言した関数からでも、nullとundefinedは返せてしまう。
ロードマップにある 2.0 Non-nullable types が導入されればマシになるとは思う。
■ このスレッドは過去ログ倉庫に格納されています
