TypeScript part2 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2015/04/30(木) 18:37:29.98ID:ynMflk1l
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/
2016/03/09(水) 15:24:10.02ID:wC8YUP1c
>>252
そんな感じでおk。var vs. const や == vs. === 等は
ポストプロセスとの相性があるだろうから試してくれ。
useの定義だけ単品のファイルにしてtsconfig.jsonで切り替えると良いかも。

もちろんtscの後に実行する。やり方はビルドツール次第。
デバッグ中はminifyされると面倒だから、リリース時だけ使うといい。
2016/03/09(水) 20:12:15.23ID:YZujmLFz
>>253
サンキュウ。
君詳しいな。また教えてくれよ。
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;
これを上の定義に追加するとエラーします。
どうすれば良いですか?
2016/03/09(水) 21:30:41.53ID:0Gq8vrNb
>>255
それ古い書き方。今時は
function f(x?: number | string): void { }
と書く
2016/03/09(水) 21:32:56.87ID:0Gq8vrNb
古い書き方でやりたい場合は
function f(x?: number):void;
function f(x?: string): void;
function f(x?: any): void {
で出来る
2016/03/10(木) 10:54:45.09ID:z40A+Y3k
>>256>>257
うまくいったわ。ありがとう。

もう一つ教えて。Visual StudioでTypeScript勉強中なのだが、
function f(){
   ...
   return ;
   ...
}
とreturn入れると、
Unreachable code detected.
のエラーになってしまう。
JavaScriptなら警告だけなのに。
エラーになると実行出来ないのだが、対策ありますか?
2016/03/10(木) 11:13:40.34ID:la5WEUke
>>258
--allowUnreachableCode
tsconfig.json に書くなら "allowUnreachableCode": true
テスト用の一時的変更でない限り、高確率でバグだろうからな
2016/03/10(木) 13:16:14.83ID:z40A+Y3k
>>259
レスありがとうございます。
ググったらVS2013ではtsconfig.jsonが使えない?
ようなんですが、どうにかして
allowUnreachableCode を有効化する方法ありますか?
2016/03/14(月) 07:46:17.33ID:CkOIJo3B
JavaScriptの10個くらいのファイルがあり、それをTypeScript化したいのです。
全部のファイルで、同じmodule名で囲ったら、互いに変数や関数を参照出来ると思ったのですが、出来ませんでした。
TypeScriptではC#で言うところのPartial Classみたいにする方法ありますか?
2016/03/14(月) 08:26:19.76ID:rt0F/u0o
>>261
module/namespaceのexportしてないオブジェクトはローカル変数になるからできないね。
他のファイルから使いたいならexportするしかない。外部に公開されちゃうけど。

Partial Classについては、インスタンスなりprototypeなりに関数を代入すれば
似たようなことはできるけど、thisやsuperが扱えないかもしれないな。
インタフェースと declare var の組み合わせは代わりになるだろうか? lib.d.tsを参考に。
2016/03/14(月) 10:05:23.83ID:WJ0CXY/9
JavaScriptの方で擬似的に名前空間化されていないものに
後からnamespaceで囲う必要はないと思う

partial classは実行時に実現できたとしてもclass内部の型定義が不完全になるでしょ
interfaceはいくつでも同名で定義できるので、全てpartialのようなもの
2016/03/14(月) 14:40:23.18ID:CkOIJo3B
>>262 >>263
詳しい説明ありがとうございました。

>JavaScriptの方で擬似的に名前空間化されていないものに
>後からnamespaceで囲う必要はないと思う

JSのファイルは全部で50個くらいあり、
全部をTS化したいのです。
それで、取りあえず、ある特定の機能に関連している10ファイルを一つにしたくて、
同じmodule名で囲ってみました。

結局、その10ファイルの中でも互いに利用する関数はそれぞれexportして互いに利用し、
一方グローバル変数は一つのTSファイルに集めてそれらを全部exportして10個のTSや、他のJSファイルの中で利用しました。
こういう方針でやるのは、正統的ではないですか?
正しい手法があれば教えて下さい。
2016/03/14(月) 15:30:12.67ID:rt0F/u0o
たまたま見つけてタイムリーだったので張っておく。現実装に依存しすぎだとは思うが。
> TypeScriptのクラスをnamespaceで拡張する
ttp://qiita.com/ConquestArrow/items/5d885128f896844698dd

複数ファイルから成る出力全体をモジュールで包む機能って無いんだっけ?
単に function() { ... } で囲んでくれるだけで良いんだけれど。
モジュール内部の各所では使うものの、外部からアクセスする必要のないものはローカル化したい。
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するべきだろうね
2016/03/14(月) 22:56:12.42ID:CkOIJo3B
>>266
教えて貰ったリンク先見ても良く分かりません。
もう少し分かり易い例はどこかに無いでしょうか?
2016/03/15(火) 19:08:51.76ID:oaSHh/yi
>>265
classの中にnamespaceと言うのが
違和感有ります。皆さんはどうですか?
2016/03/15(火) 20:09:42.73ID:9cVBtkdm
どうでもいい
2016/03/16(水) 00:53:23.89ID:dOYh+a0T
どうでも良くない
2016/03/16(水) 01:11:40.10ID:Tb17X3fe
typeScriptと相性かいいフレームワークってどんなのがあります。?
vue.jsと比べるとreactはかなり良さ気なんですが
2016/03/16(水) 13:03:38.46ID:/Zyxq7hl
Angular2かな
まだベータ版だけどTypeScriptとの親和性は抜群というかAngular2自体がTypeScriptで作られてる
だから*.d.tsが要らない
あと最終的にはテンプレート文字列内まで補完が効くようになるらしい
2016/03/17(木) 02:25:53.34ID:ybZd+XDK
namespaceとmoduleの違いが分かりません。
ほとんど同じようなものだと思ってもいいですか?
2016/03/17(木) 09:53:47.06ID:U5XyTqUO
>>272
googleとmsの共同作品みたいなものですね。
reactと比較してのメリットはフルスタックなところですねー。
facebookもflowとか独自にやらずにtypeScript使ってくれればいいのに。
デメリットは学習コストなんですよねー。正直angular1で挫折したので、、、、
typeScript作のフレームワークとかライブラリって他に何がありますかねー?
2016/03/17(木) 10:41:50.84ID:FCgg2gkL
>>273
最初はmoduleしかなかったがTypeScriptのmoduleはJavaScript界隈のモジュールと
違ってnamespaceに近いものだから、後からmoduleの別名でnamespaceが追加された
要するに全く同じもの
そしてmoduleはobsoleteな感じだったが、1.8でまた蒸し返された感じだな
2016/03/17(木) 10:48:46.56ID:ybZd+XDK
>>275
解説ありがとうございました。スッキリしました。
>1.8でまた蒸し返された感じだな
なぜそんなに迷走しているのですか?
2016/03/17(木) 11:30:44.99ID:FCgg2gkL
>>276
言い方がまずかったかもしれん…迷走ではない
Ambient Modulesと呼ばれている機能が少し拡張されただけだ
moduleと1.8で拡張されたdeclare moduleは似てはいるが別モンと考えた方が良かったな
ただのmoduleはnamespaceに置き換えた方が誤解が少なくていいと思うが
declare moduleはモジュール定義を書くものだから必要なものだった
2016/03/17(木) 14:17:48.80ID:LtlKgYTa
playgroundから補完効くの気持ちいいんですけど、
外部ライブラリも取り込めるタイプのやつって無いですかね?
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です。
2016/03/17(木) 21:18:45.36ID:FCgg2gkL
>>279
呼び出してるとこも書かないとそれだけじゃ分からん
2016/03/17(木) 23:01:06.58ID:ybZd+XDK
>>280
呼び出す以前に、
Array.prototype.remove = function (o) {
        ^^^^^
このremoveの部分で上記のエラーメッセージが出ます。
もし理由や対策が分かれば教えて下さい。
2016/03/17(木) 23:19:57.85ID:2Htg2ogu
>>281
Playgroundなら動くように見えるが、これでいいのか?
http://tiny.cc/1fw49x

tscのバージョンとかビルドオプションにも関係するかもしれない。
型チェックを厳しくすると文句を言われる気がする。
その場合は any にキャストして黙らせるんだろうけど。
283デフォルトの名無しさん
垢版 |
2016/03/18(金) 01:21:57.61ID:xSPdqn8L
>>282
サンプルありがとうございます。
何故かVSだとエラーするんですよね。
2016/03/18(金) 08:30:08.17ID:lH6dzSdk
>>283
君は基本的な姿勢が身についていない
・質問をする場合は、再現可能なコード片を添付せよ
・エラーを特定し、メッセージを加工せずに報告せよ

>>279 だけ見ると、使用時にエラーがあるように読めるが
>>281 では、実装時にエラーがあるように読める(エラー内容は不明)
こんなことでは他人の手を煩わせるだけだ
2016/03/18(金) 09:44:04.92ID:UW/nCw4W
>>279
そのインターフェースが他のソースから見える状態じゃないとエラーになるし
prototypeへの実装も他のコードよりも先に行われないと実行時エラー
そのメッセージだと前者のようだけどな
2016/03/18(金) 13:56:17.03ID:+/FU+lPG
>>274
フレームワークと言えばUWP(ユニバーサルWindowsプラットフォーム)もあるな
TypeScriptでUWPを作るのは情報が少ないけど同じMSだから手厚いサポートがあるはず
2016/03/19(土) 10:14:16.49ID:iKSB+QiN
>>286
JavaScript/HTMLでUWP作れるから問題は無いんじゃない?
(UWPが流行るかはともかく)
VS2015ではまだプロジェクトテンプレートが無いけど、次期版には追加されるでしょ
2016/03/19(土) 12:41:33.04ID:MNmjmgAA
>>287
UWPってqiitaを観た感じはやっていていないけど、
UIをXMLっぽくつくりこめるってやつならReactNativeでいい気がする。
2016/03/21(月) 08:15:39.14ID:O7DG3syI
typeScriptでVSCのextension作りたいんですけど
動作の挙動を見るのに既存のextensionをデバッガで動かしています。
でもVSC自体がそのextensionを使っているとバッティングして上手く動かないので
別プロファイルみたいにして動かしたいんです。
でも、そういう起動オプションが見つからなくて困っています。
お助け下さい。
2016/03/22(火) 00:21:22.49ID:uAieVvDE
typeScriptのOptional型ってswiftのそれとは全然違うような。
interfaceのメンバにしか?使えないの?
返却値もoptional使いたい
2016/03/22(火) 01:42:45.61ID:gYAdXehO
>>290
Swiftとは違うね。単に省略を許すだけ。
TypeScriptではすべての変数がOptional型といえる。
numberを返すと宣言した関数からでも、nullとundefinedは返せてしまう。
ロードマップにある 2.0 Non-nullable types が導入されればマシになるとは思う。
2016/03/22(火) 13:37:01.50ID:r8fC7r2k
--strictNullChecks 一発でデフォがNon-nullableになるのは助かる
--noImplicitAny --noImplicitReturns と必須オプションがまた増えたな
2016/03/22(火) 17:31:59.65ID:DpQ/EBxZ
nullやundefinedを許していない状況で
省略可能引数にnullチェックが必要になるのは少し変な気がするから使わなさそう
2016/03/22(火) 17:40:46.01ID:uAieVvDE
>>292
なるほどオプションで有効になる感じですね。
早く試してみたいです。
でも外部ライブラリとの整合性をどうするのか気になります。
swiftだと!がついているImplicitly Unwrapped Optional型とかいうのになって
明確に危険な型だと分かるようにしてますけど、typeScriptも似たようなものになるんでしょうか?
2016/03/22(火) 18:03:22.23ID:gYAdXehO
フロー解析をするようになってきているから
use(x) はエラーになって
if (x != null) { use(x) } はエラーにならない
くらいのことをやってくれるはず。Swiftの!型に対応するものは要らない。
2016/03/22(火) 21:46:36.58ID:r8fC7r2k
>>293
hoge?: number, じゃなくて hoge = 0, とかにすれば別にnullチェック要らないじゃん
で、
interface {
 hoge?: number

function func(hoge?: number)

両方共nullableかつ省略可能で hoge: number? だと省略不可でnullableと考えると
一貫していて結構いいじゃない
2016/03/22(火) 21:49:41.79ID:r8fC7r2k
let hoge: number?;
とletの場合は省略するという考えがないからnumber?でnullableということだな
2016/03/22(火) 21:53:50.90ID:uAieVvDE
>>295
ありがとうございますちなみにそのフロー解析はドコまでやってくれるんでしょうか?
例えばtypeScript上で書いたFuncAがあって

let a= FuncA()
use(a)

みたいにFuncAの中で返却値がnullチェックされていれば
上記のようにnullチェック無しで使えるんでしょうか?
2016/03/22(火) 22:18:13.97ID:gYAdXehO
>>298
まだリリースはされていないからわからないよ。期待はしているけど。
その例なら function FuncA(): Foo? か : Foo か、関数の返値の宣言を見るのが自然じゃない?
FuncAの実装の中まで追うことはないだろうし、するべきではないとさえ思う。

それにしても、省略可能な引数の書き方ってどうなるんだろう?
function func(hoge?: number?) ← 厳密だが、?を2個も書くの?
function func(hoge?: number) ← 言葉通りだとnon-nullableなのにundefinedになりうる?
function func(hoge: number?) ← nullは渡せるが省略できない?
2016/03/22(火) 22:43:28.85ID:BfQhAJB6
皆さんどういう環境でtypescriptやっているのですか?
winのvisual studioは少数派かな?
2016/03/23(水) 11:41:36.25ID:oLR8GLsF
引数が省略されたかどうかを調べるための構文がないと不自然だな
hoge == nullみたいに使わないはずのキーワードが出てくるのはやっぱり変
2016/03/23(水) 13:40:01.83ID:s9X+rvra
>>301
だからNon-nullableがデフォだからって絶対nullが出てこないわけじゃないでしょ
DOMだのWebAPIは普通にnullを返すし自前の関数だってnullとかundefinedを返したいことは普通にある

それと引き数の省略には func(hoge = -1) とかにすればいいんだよ
2016/03/23(水) 14:26:23.62ID:2mxU+x1U
http://qiita.com/mizchi/items/95ee0101ac22e4b7b662
上記記事でtypeScriptディスられているんですが、

> 最近のTypeScript は動作環境のロックインが多くなりつつあり、またコンパイル後のJSはedgeで動くからこれでいいんだ、というMSの姿勢が若干透けて見えて、ちょっと距離を置きたい気分です。
というのは本当なんでしょうか?
具体的にどういうものがあるのか知りたいです。
2016/03/23(水) 15:06:32.16ID:0dLy2K+b
jsあるいはtsに
nullとundefinedが有りますが、nullだけで十分だと思うんですが皆さんそう思わない?
2016/03/23(水) 16:16:09.46ID:+D1Yzwu/
>>303
っ「要出典」
es5モードならほとんどのブラウザで動くし、es6だとEdgeでさえ動かない。node用。

一時期 async/await を強く推していて、.NET系言語、ES、Python にまで採用させた
(良く言えば、開発に協力した)のは、煙たがられていた印象はある。
2016/03/23(水) 16:20:06.05ID:s9X+rvra
機能的にundefinedで名前がnullのが1つあればよかった
nullはJavaScriptの癌と言える
TypeScriptのコーディングスタイルにもnullは使うなと書いてあるし
tslintでも警告を出せるからnullはもう使わないようにすべき
2016/03/23(水) 16:42:09.62ID:+D1Yzwu/
>>304
JSだとさらに「undefinedを保持」と「未定義」の区別がある場合も。
「不在」と「不明」は別という考え方もあったが、結局、一般人には使いこなせなかったんだろう。

ちなみにLuaはnilしかなく、nilを代入するとJSのdelete演算子になるんだが、
「保持できるnil」(キーとしては残る)のためにnullが欲しいという話もたまに出る。
何が最良かは難しいところだな。
2016/03/23(水) 16:55:04.92ID:4qmKzsXk
return 'undefined';
2016/03/23(水) 17:35:37.11ID:2mxU+x1U
interface A {
a:string
}

interface B {
b:string
}

interface C {
c:string
}

type Hoge = A|B|C


すいません。上記のようなHoge型があったとして
Hoge型をA,B,Cの何れかのinterfaceに合致するかテストする方法ってどうすればいいんでしょうか?
できれば各interfaceのメンバに触れずに確認したいのですが、、、、
2016/03/23(水) 23:04:51.01ID:+D1Yzwu/
>>309
無理でしょう。TypeScriptのinterfaceはコンパイル後には何の痕跡も残らない。
実行時にはinterface由来の型情報は使えない。
2016/03/24(木) 14:14:40.73ID:v9bzQn8L
TypeScriptはコンパイル時にはinterfaceを認識してるはずだが
コードでそれをチェックする術がないな (今後も追加される事は絶対ないだろうが)

しかしinterfaceのどれかに合致するかっていう考え方ちょっと違うな
例えば
interface A {
 a:number
}
interface B {
 b:string
}
があれば
{
 a:1,
 b:"hoge"
}
はどっちにも合致する訳だから、コンパイルが通ればどれか(または両方)のinterfaceに合致してる
と判別が出来るってだけのものだよ
312デフォルトの名無しさん
垢版 |
2016/03/24(木) 17:51:19.94ID:QUxdzUzn
chromeでデバッグできますか?
2016/03/24(木) 18:45:20.46ID:bRX025wQ
>>312
.js にコンパイルするときに Source Map を出力できる。
それ以上のデバッグについては開発環境スレでどうぞ。
2016/03/25(金) 02:00:24.75ID:G+z1ebGz
>>312
weboack使ってるけどなんの問題もなくtsファイルにbreakpointが貼れる
2016/03/25(金) 02:00:53.64ID:G+z1ebGz
>>314
webpackです。typo
2016/03/25(金) 12:36:24.15ID:Ib2txsDS
>>314
iisサーバーは?
2016/03/27(日) 23:00:49.72ID:FjCKG/3R
typeScriptでWeakMapっていつから使えるようになるんですか?
ES2015から使えるものっててっきりtypeScriptでもつかえるものかと
2016/03/28(月) 14:50:43.22ID:6ufq8Y0K
--target ES6にすれば使えるっていうかそれぐらい察しろ
2016/03/28(月) 19:56:00.22ID:YM89lTlN
>>318
えっ。それっておかしくないです?
typeScriptって基本 ES2015 + 型なのかと。
アロー関数は標準でサポートしといてWeakMapは対象外ってどういうことなの
2016/03/28(月) 21:20:10.15ID:K6EkYblL
>>319
構文糖で対応できる機能は対応している
JavaScriptエンジンが対応してくれないとどうしようもない機能は無理
それぐらい察しろ
2016/03/29(火) 00:12:34.26ID:clo72TFv
>>320
なるほど。てっきりtargetって出力するjsコードの対応バージョンでしかなくて、
typeScriptの仕様自体はどのtargetでも変化しないと思い込んでました。
つまりES2015のpolyfillの役割も果たしてくれるとばかり思っていました。
ありがとうございます。
2016/03/29(火) 10:54:45.27ID:NGEgZfA0
>>321
基本TypeScriptはES2015のpolifillだと思っていいけど
単に少ないコードで実装出来るものしか対応してないだけだ
__extendsとか__decorateとかね
2.0でasync/awaitもES5で使えるようになるけど、もしWeakMapを対応したら
巨大なコードが*.jsの頭に引っ付くことになるけどそんなの嫌だろ
2016/04/05(火) 23:45:55.11ID:nWoaZGhX
JavaのNashornにrequire関数組み込んでTypeScript使えるようにしたが結構楽しいわ
letの暗黙リネームが実行時に何か不具合起こすんじゃないかと少々気になる
2016/04/06(水) 20:01:43.86ID:NydnT1H+
>>323
letが導入されてから1.8になるまでforループ内でlet使うと特定の条件で実行時エラーを起こしてた
1.8で修正されたから古いバージョンの場合は気を付けた方がいいけど1.8以降は不具合なんて起こさないはず
2016/04/11(月) 23:59:54.54ID:/4tKcoWK
typescript初心者です。
Visual Studioで、
module mod {
function func() {
alert('func');
}
}
が、
var mod;
(function (mod) {
function func() {
alert('func');
}
})(mod || (mod = {}));

になるのですが、分からないのは、
(mod || (mod = {}));
の部分です。
これは何でしょうか?
どなたか解説お願いいたします。あるいはヒントなどお教えください。
2016/04/12(火) 00:19:14.57ID:ep3rTpAI
>>325
mod 変数が定義済みなら再利用 or 無ければ新規の空オブジェクトを使う。
複数の場所で mod モジュールが定義される場合に、内容をマージすることになる。
2016/04/12(火) 00:20:23.42ID:L6C4Yo9J
(A || B)はAもしくはBが偽じゃなければその内容(結果)を返す特性があって
単純に言うとmodが空ならオブジェクト代入して無名関数に渡すよってこと
2016/04/12(火) 00:47:40.67ID:X3YsmN+g
>>326 >>327
解説ありがとうございました。だいぶ分かってきました。
もう一つ教えて下さい。
二つのtsファイル
----------------
// file1.ts
module mod {
  function func1() {
    alert('func1');
  }
}
----------------
// file2.ts
module mod {
  function func2() {
    alert('func2');
  }
}
----------------
2016/04/12(火) 00:48:40.40ID:X3YsmN+g
から生成される二つのjsファイルを単純に連結して一つのファイルにします。
----------------
var mod;
(function (mod) {
  function func1() {
    alert('func1');
  }
})(mod || (mod = {}));

var mod;
(function (mod) {
  function func2() {
    alert('func2');
  }
})(mod || (mod = {}));
----------------
こういう単純な例だと問題は無かったのですが、実際の状況では連結したJSの実行時にエラーする場合がありました。
少し調べた限りでは、エラーの有無はJSファイルを連結する順番に依存するようなのですが、そういう事はありますか?
やりたいのは、複数のJSファイルをmoduleで囲ってTS化して、そうやって出来上がったJSファイルを一つのファイルに連結したいのですが、エラーが出て行き詰っています。
こういうやり方は間違いですか?
2016/04/12(火) 10:30:36.29ID:ep3rTpAI
>>329
連結する順番でエラーになることはある。
特にグローバルスコープ(関数の外)で処理が走る場合かな?

tslint を入れて no-use-before-declare (宣言前に使うと警告) で
チェックする手はあるかもしれない。
2016/04/12(火) 12:30:46.37ID:MBVppC7j
>>330
情報ありがとうございました。
調べてみます。
2016/04/12(火) 21:56:30.51ID:aXmXxCLh
TypeScript 2.0プレビュー
http://www.infoq.com/jp/news/2016/04/typescript-2-preview
2016/04/13(水) 16:45:42.60ID:xgAfpouO
おおって思ってchannel9の動画見てみたらマイクロソフトの人が未だにtsd
使ってデモしてたんだけどtsd非推奨じゃなかったんかい
2016/04/13(水) 16:56:49.53ID:xgAfpouO
面白いねTypeScript2.0

undefinedとnullはそれぞれ独立した型になって
let a: number|null|undefined
みたいに宣言するようになるのか
2016/04/13(水) 22:27:08.77ID:JKiuLOht
voidでよくね
2016/04/14(木) 12:17:58.56ID:ea0e/BMW
C#のvirtual,overrideも実装してくれよ
issueには何度かあがってるけどその度に否定されてんだよな、何でだ
337デフォルトの名無しさん
垢版 |
2016/05/01(日) 13:04:39.03ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
338デフォルトの名無しさん
垢版 |
2016/05/01(日) 20:44:35.23ID:sHMevs8d
Visual Studio Comm. 2015でTypeScript 1.7.4.0を使ってます。
プロジェクトをビルドしてデバッグしても変更が反映されなくなりました。
仕方なく新しいプロジェクトを作ってソースを移動させているのですが、対処法はありますか?
2016/05/01(日) 21:13:58.28ID:1U34S4Ix
>>338
>変更が反映されなくなりました。
何の変更がどこに反映されないん?
tsからjsが自動生成されないと言う意味?
もしそうならtsに文法エラーが有るんじゃないか?
340デフォルトの名無しさん
垢版 |
2016/05/02(月) 10:47:24.02ID:H1b5QbBD
レスありがとうございます。こんなに早く反応があるとは思いませんでした。見逃してしまって申し訳ないです。

>何の変更がどこに反映されないのか
ソースコードの変更です。
ビルドして実行してもjsが前回のビルドのままで困っていました。

>tsからjsが自動生成されないと言う意味?
>もしそうならtsに文法エラーが有るんじゃないか?
仰る通り文法エラーがあったみたいです。今では正常に実行できています。ご迷惑をおかけしました。

それにしても間違ったコードを書いてもビルドエラーにはならないんですね……。
これではどこでミスったかチェックしにくい。
2016/05/02(月) 16:08:44.94ID:WvgoLY0A
「新しいプロジェクトを作ってソースを移動させ」たらうまくいくのだがという話じゃなかったのか
2016/05/03(火) 07:37:48.31ID:llYnk/DC
「新しいプロジェクトを作ってソースを移動させたらうまくいく」ケースは俺も何度か経験したことがあるなぁ
しかも>>338と違ってコンパイルエラーは発生していない

ビルドして実行してもjsが前回のビルドのままってところまでは一致してるんだよな
(そもそもビルドできないのだが)
2016/05/09(月) 17:02:14.42ID:pzKdLl0R
Visual Studio2015で二つのTSのプロジェクトがあり、
Proj1
 typescrpt1.ts
 commonA.ts
 commonB.ts

Proj2
 typescrpt2.ts
 commonA.ts
 commonB.ts

両者で共通のtsファイルが二つあるのだが、こう言う場合、オリジナルをProj1に入れておいて、
Proj2から参照するようなやり方は出来る?
現状では、Proj1でCommonA,Bを変更する度にPorj2に手作業でコピーしているのだが、
それだと毎回そんな作業するのが手間だし、うっかりProj2側でCommonのファイルを変更すると
逆にProj1にも修正をしなくてはならないので困るのだが。
2016/05/09(月) 17:17:18.07ID:8SRbjrMh
既存のファイルを追加すれば参照してくれるでしょ
プロジェクト以下に収めなきゃいけない理由がないなら
common, proj1, proj2と横並びにすればいい
2016/05/09(月) 17:28:41.05ID:pzKdLl0R
>>344
レスありがとうございました。
既存のファイルを追加すると、そのコピーが追加されるので、結局343 で
説明したようなファイル構造になります。
困っています。
2016/05/10(火) 15:04:25.21ID:/c+E/E1d
だれも分からないの?
2016/05/10(火) 15:34:09.22ID:FvQx+NTV
VSでTypeScriptやってる人が少ないんでないの?
CとかC++を一緒にやってる人じゃないと最近の人はVSCodeを使うだろうし
2016/05/10(火) 18:31:49.18ID:/c+E/E1d
>>347
VSCodeだと343のような状況はどうなるの?
共通部分は一元管理が出来るの?
2016/05/10(火) 22:20:05.90ID:ygHcjv1V
私もやり方知りたいが分からんのでスタティックリンクにしてるがそれじゃ駄目?
2016/05/10(火) 22:23:56.70ID:/c+E/E1d
>>349
windowsでスタテクリンク出来る?
2016/05/10(火) 22:31:47.62ID:ygHcjv1V
ジャンクションでググて
2016/05/10(火) 22:34:19.65ID:LhMpTcEU
>>343
思想的には commonA/B を独立したプロジェクトにしてモジュールとして再利用するんだろうな。
こっそり同一ファイル扱いにするならファイル or フォルダをシンボリックリンクにするか。
これと似たようなものだが、昔は svn:externals を使ったこともあったな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況