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:ynMflk1l256デフォルトの名無しさん
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 が導入されればマシになるとは思う。
292デフォルトの名無しさん
2016/03/22(火) 13:37:01.50ID:r8fC7r2k --strictNullChecks 一発でデフォがNon-nullableになるのは助かる
--noImplicitAny --noImplicitReturns と必須オプションがまた増えたな
--noImplicitAny --noImplicitReturns と必須オプションがまた増えたな
293デフォルトの名無しさん
2016/03/22(火) 17:31:59.65ID:DpQ/EBxZ nullやundefinedを許していない状況で
省略可能引数にnullチェックが必要になるのは少し変な気がするから使わなさそう
省略可能引数にnullチェックが必要になるのは少し変な気がするから使わなさそう
294デフォルトの名無しさん
2016/03/22(火) 17:40:46.01ID:uAieVvDE >>292
なるほどオプションで有効になる感じですね。
早く試してみたいです。
でも外部ライブラリとの整合性をどうするのか気になります。
swiftだと!がついているImplicitly Unwrapped Optional型とかいうのになって
明確に危険な型だと分かるようにしてますけど、typeScriptも似たようなものになるんでしょうか?
なるほどオプションで有効になる感じですね。
早く試してみたいです。
でも外部ライブラリとの整合性をどうするのか気になります。
swiftだと!がついているImplicitly Unwrapped Optional型とかいうのになって
明確に危険な型だと分かるようにしてますけど、typeScriptも似たようなものになるんでしょうか?
295デフォルトの名無しさん
2016/03/22(火) 18:03:22.23ID:gYAdXehO フロー解析をするようになってきているから
use(x) はエラーになって
if (x != null) { use(x) } はエラーにならない
くらいのことをやってくれるはず。Swiftの!型に対応するものは要らない。
use(x) はエラーになって
if (x != null) { use(x) } はエラーにならない
くらいのことをやってくれるはず。Swiftの!型に対応するものは要らない。
296デフォルトの名無しさん
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と考えると
一貫していて結構いいじゃない
hoge?: number, じゃなくて hoge = 0, とかにすれば別にnullチェック要らないじゃん
で、
interface {
hoge?: number
と
function func(hoge?: number)
の
両方共nullableかつ省略可能で hoge: number? だと省略不可でnullableと考えると
一貫していて結構いいじゃない
297デフォルトの名無しさん
2016/03/22(火) 21:49:41.79ID:r8fC7r2k let hoge: number?;
とletの場合は省略するという考えがないからnumber?でnullableということだな
とletの場合は省略するという考えがないからnumber?でnullableということだな
298デフォルトの名無しさん
2016/03/22(火) 21:53:50.90ID:uAieVvDE >>295
ありがとうございますちなみにそのフロー解析はドコまでやってくれるんでしょうか?
例えばtypeScript上で書いたFuncAがあって
let a= FuncA()
use(a)
みたいにFuncAの中で返却値がnullチェックされていれば
上記のようにnullチェック無しで使えるんでしょうか?
ありがとうございますちなみにそのフロー解析はドコまでやってくれるんでしょうか?
例えばtypeScript上で書いたFuncAがあって
let a= FuncA()
use(a)
みたいにFuncAの中で返却値がnullチェックされていれば
上記のようにnullチェック無しで使えるんでしょうか?
299デフォルトの名無しさん
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は渡せるが省略できない?
まだリリースはされていないからわからないよ。期待はしているけど。
その例なら function FuncA(): Foo? か : Foo か、関数の返値の宣言を見るのが自然じゃない?
FuncAの実装の中まで追うことはないだろうし、するべきではないとさえ思う。
それにしても、省略可能な引数の書き方ってどうなるんだろう?
function func(hoge?: number?) ← 厳密だが、?を2個も書くの?
function func(hoge?: number) ← 言葉通りだとnon-nullableなのにundefinedになりうる?
function func(hoge: number?) ← nullは渡せるが省略できない?
300デフォルトの名無しさん
2016/03/22(火) 22:43:28.85ID:BfQhAJB6 皆さんどういう環境でtypescriptやっているのですか?
winのvisual studioは少数派かな?
winのvisual studioは少数派かな?
301デフォルトの名無しさん
2016/03/23(水) 11:41:36.25ID:oLR8GLsF 引数が省略されたかどうかを調べるための構文がないと不自然だな
hoge == nullみたいに使わないはずのキーワードが出てくるのはやっぱり変
hoge == nullみたいに使わないはずのキーワードが出てくるのはやっぱり変
302デフォルトの名無しさん
2016/03/23(水) 13:40:01.83ID:s9X+rvra >>301
だからNon-nullableがデフォだからって絶対nullが出てこないわけじゃないでしょ
DOMだのWebAPIは普通にnullを返すし自前の関数だってnullとかundefinedを返したいことは普通にある
それと引き数の省略には func(hoge = -1) とかにすればいいんだよ
だからNon-nullableがデフォだからって絶対nullが出てこないわけじゃないでしょ
DOMだのWebAPIは普通にnullを返すし自前の関数だってnullとかundefinedを返したいことは普通にある
それと引き数の省略には func(hoge = -1) とかにすればいいんだよ
303デフォルトの名無しさん
2016/03/23(水) 14:26:23.62ID:2mxU+x1U http://qiita.com/mizchi/items/95ee0101ac22e4b7b662
上記記事でtypeScriptディスられているんですが、
> 最近のTypeScript は動作環境のロックインが多くなりつつあり、またコンパイル後のJSはedgeで動くからこれでいいんだ、というMSの姿勢が若干透けて見えて、ちょっと距離を置きたい気分です。
というのは本当なんでしょうか?
具体的にどういうものがあるのか知りたいです。
上記記事でtypeScriptディスられているんですが、
> 最近のTypeScript は動作環境のロックインが多くなりつつあり、またコンパイル後のJSはedgeで動くからこれでいいんだ、というMSの姿勢が若干透けて見えて、ちょっと距離を置きたい気分です。
というのは本当なんでしょうか?
具体的にどういうものがあるのか知りたいです。
304デフォルトの名無しさん
2016/03/23(水) 15:06:32.16ID:0dLy2K+b jsあるいはtsに
nullとundefinedが有りますが、nullだけで十分だと思うんですが皆さんそう思わない?
nullとundefinedが有りますが、nullだけで十分だと思うんですが皆さんそう思わない?
305デフォルトの名無しさん
2016/03/23(水) 16:16:09.46ID:+D1Yzwu/ >>303
っ「要出典」
es5モードならほとんどのブラウザで動くし、es6だとEdgeでさえ動かない。node用。
一時期 async/await を強く推していて、.NET系言語、ES、Python にまで採用させた
(良く言えば、開発に協力した)のは、煙たがられていた印象はある。
っ「要出典」
es5モードならほとんどのブラウザで動くし、es6だとEdgeでさえ動かない。node用。
一時期 async/await を強く推していて、.NET系言語、ES、Python にまで採用させた
(良く言えば、開発に協力した)のは、煙たがられていた印象はある。
306デフォルトの名無しさん
2016/03/23(水) 16:20:06.05ID:s9X+rvra 機能的にundefinedで名前がnullのが1つあればよかった
nullはJavaScriptの癌と言える
TypeScriptのコーディングスタイルにもnullは使うなと書いてあるし
tslintでも警告を出せるからnullはもう使わないようにすべき
nullはJavaScriptの癌と言える
TypeScriptのコーディングスタイルにもnullは使うなと書いてあるし
tslintでも警告を出せるからnullはもう使わないようにすべき
307デフォルトの名無しさん
2016/03/23(水) 16:42:09.62ID:+D1Yzwu/ >>304
JSだとさらに「undefinedを保持」と「未定義」の区別がある場合も。
「不在」と「不明」は別という考え方もあったが、結局、一般人には使いこなせなかったんだろう。
ちなみにLuaはnilしかなく、nilを代入するとJSのdelete演算子になるんだが、
「保持できるnil」(キーとしては残る)のためにnullが欲しいという話もたまに出る。
何が最良かは難しいところだな。
JSだとさらに「undefinedを保持」と「未定義」の区別がある場合も。
「不在」と「不明」は別という考え方もあったが、結局、一般人には使いこなせなかったんだろう。
ちなみにLuaはnilしかなく、nilを代入するとJSのdelete演算子になるんだが、
「保持できるnil」(キーとしては残る)のためにnullが欲しいという話もたまに出る。
何が最良かは難しいところだな。
308デフォルトの名無しさん
2016/03/23(水) 16:55:04.92ID:4qmKzsXk return 'undefined';
309デフォルトの名無しさん
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のメンバに触れずに確認したいのですが、、、、
a:string
}
interface B {
b:string
}
interface C {
c:string
}
type Hoge = A|B|C
すいません。上記のようなHoge型があったとして
Hoge型をA,B,Cの何れかのinterfaceに合致するかテストする方法ってどうすればいいんでしょうか?
できれば各interfaceのメンバに触れずに確認したいのですが、、、、
310デフォルトの名無しさん
2016/03/23(水) 23:04:51.01ID:+D1Yzwu/311デフォルトの名無しさん
2016/03/24(木) 14:14:40.73ID:v9bzQn8L TypeScriptはコンパイル時にはinterfaceを認識してるはずだが
コードでそれをチェックする術がないな (今後も追加される事は絶対ないだろうが)
しかしinterfaceのどれかに合致するかっていう考え方ちょっと違うな
例えば
interface A {
a:number
}
interface B {
b:string
}
があれば
{
a:1,
b:"hoge"
}
はどっちにも合致する訳だから、コンパイルが通ればどれか(または両方)の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でデバッグできますか?
313デフォルトの名無しさん
2016/03/24(木) 18:45:20.46ID:bRX025wQ314デフォルトの名無しさん
2016/03/25(金) 02:00:24.75ID:G+z1ebGz >>312
weboack使ってるけどなんの問題もなくtsファイルにbreakpointが貼れる
weboack使ってるけどなんの問題もなくtsファイルにbreakpointが貼れる
315デフォルトの名無しさん
2016/03/25(金) 02:00:53.64ID:G+z1ebGz >>314
webpackです。typo
webpackです。typo
316デフォルトの名無しさん
2016/03/25(金) 12:36:24.15ID:Ib2txsDS >>314
iisサーバーは?
iisサーバーは?
317デフォルトの名無しさん
2016/03/27(日) 23:00:49.72ID:FjCKG/3R typeScriptでWeakMapっていつから使えるようになるんですか?
ES2015から使えるものっててっきりtypeScriptでもつかえるものかと
ES2015から使えるものっててっきりtypeScriptでもつかえるものかと
318デフォルトの名無しさん
2016/03/28(月) 14:50:43.22ID:6ufq8Y0K --target ES6にすれば使えるっていうかそれぐらい察しろ
319デフォルトの名無しさん
2016/03/28(月) 19:56:00.22ID:YM89lTlN320デフォルトの名無しさん
2016/03/28(月) 21:20:10.15ID:K6EkYblL321デフォルトの名無しさん
2016/03/29(火) 00:12:34.26ID:clo72TFv >>320
なるほど。てっきりtargetって出力するjsコードの対応バージョンでしかなくて、
typeScriptの仕様自体はどのtargetでも変化しないと思い込んでました。
つまりES2015のpolyfillの役割も果たしてくれるとばかり思っていました。
ありがとうございます。
なるほど。てっきりtargetって出力するjsコードの対応バージョンでしかなくて、
typeScriptの仕様自体はどのtargetでも変化しないと思い込んでました。
つまりES2015のpolyfillの役割も果たしてくれるとばかり思っていました。
ありがとうございます。
322デフォルトの名無しさん
2016/03/29(火) 10:54:45.27ID:NGEgZfA0 >>321
基本TypeScriptはES2015のpolifillだと思っていいけど
単に少ないコードで実装出来るものしか対応してないだけだ
__extendsとか__decorateとかね
2.0でasync/awaitもES5で使えるようになるけど、もしWeakMapを対応したら
巨大なコードが*.jsの頭に引っ付くことになるけどそんなの嫌だろ
基本TypeScriptはES2015のpolifillだと思っていいけど
単に少ないコードで実装出来るものしか対応してないだけだ
__extendsとか__decorateとかね
2.0でasync/awaitもES5で使えるようになるけど、もしWeakMapを対応したら
巨大なコードが*.jsの頭に引っ付くことになるけどそんなの嫌だろ
323デフォルトの名無しさん
2016/04/05(火) 23:45:55.11ID:nWoaZGhX JavaのNashornにrequire関数組み込んでTypeScript使えるようにしたが結構楽しいわ
letの暗黙リネームが実行時に何か不具合起こすんじゃないかと少々気になる
letの暗黙リネームが実行時に何か不具合起こすんじゃないかと少々気になる
324デフォルトの名無しさん
2016/04/06(水) 20:01:43.86ID:NydnT1H+ >>323
letが導入されてから1.8になるまでforループ内でlet使うと特定の条件で実行時エラーを起こしてた
1.8で修正されたから古いバージョンの場合は気を付けた方がいいけど1.8以降は不具合なんて起こさないはず
letが導入されてから1.8になるまでforループ内でlet使うと特定の条件で実行時エラーを起こしてた
1.8で修正されたから古いバージョンの場合は気を付けた方がいいけど1.8以降は不具合なんて起こさないはず
325デフォルトの名無しさん
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 = {}));
の部分です。
これは何でしょうか?
どなたか解説お願いいたします。あるいはヒントなどお教えください。
Visual Studioで、
module mod {
function func() {
alert('func');
}
}
が、
var mod;
(function (mod) {
function func() {
alert('func');
}
})(mod || (mod = {}));
になるのですが、分からないのは、
(mod || (mod = {}));
の部分です。
これは何でしょうか?
どなたか解説お願いいたします。あるいはヒントなどお教えください。
326デフォルトの名無しさん
2016/04/12(火) 00:19:14.57ID:ep3rTpAI327デフォルトの名無しさん
2016/04/12(火) 00:20:23.42ID:L6C4Yo9J (A || B)はAもしくはBが偽じゃなければその内容(結果)を返す特性があって
単純に言うとmodが空ならオブジェクト代入して無名関数に渡すよってこと
単純に言うとmodが空ならオブジェクト代入して無名関数に渡すよってこと
328デフォルトの名無しさん
2016/04/12(火) 00:47:40.67ID:X3YsmN+g329デフォルトの名無しさん
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ファイルを一つのファイルに連結したいのですが、エラーが出て行き詰っています。
こういうやり方は間違いですか?
----------------
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ファイルを一つのファイルに連結したいのですが、エラーが出て行き詰っています。
こういうやり方は間違いですか?
330デフォルトの名無しさん
2016/04/12(火) 10:30:36.29ID:ep3rTpAI >>329
連結する順番でエラーになることはある。
特にグローバルスコープ(関数の外)で処理が走る場合かな?
tslint を入れて no-use-before-declare (宣言前に使うと警告) で
チェックする手はあるかもしれない。
連結する順番でエラーになることはある。
特にグローバルスコープ(関数の外)で処理が走る場合かな?
tslint を入れて no-use-before-declare (宣言前に使うと警告) で
チェックする手はあるかもしれない。
331デフォルトの名無しさん
2016/04/12(火) 12:30:46.37ID:MBVppC7j332デフォルトの名無しさん
2016/04/12(火) 21:56:30.51ID:aXmXxCLh TypeScript 2.0プレビュー
http://www.infoq.com/jp/news/2016/04/typescript-2-preview
http://www.infoq.com/jp/news/2016/04/typescript-2-preview
333デフォルトの名無しさん
2016/04/13(水) 16:45:42.60ID:xgAfpouO おおって思ってchannel9の動画見てみたらマイクロソフトの人が未だにtsd
使ってデモしてたんだけどtsd非推奨じゃなかったんかい
使ってデモしてたんだけどtsd非推奨じゃなかったんかい
334デフォルトの名無しさん
2016/04/13(水) 16:56:49.53ID:xgAfpouO 面白いねTypeScript2.0
undefinedとnullはそれぞれ独立した型になって
let a: number|null|undefined
みたいに宣言するようになるのか
undefinedとnullはそれぞれ独立した型になって
let a: number|null|undefined
みたいに宣言するようになるのか
335デフォルトの名無しさん
2016/04/13(水) 22:27:08.77ID:JKiuLOht voidでよくね
336デフォルトの名無しさん
2016/04/14(木) 12:17:58.56ID:ea0e/BMW C#のvirtual,overrideも実装してくれよ
issueには何度かあがってるけどその度に否定されてんだよな、何でだ
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的に分散され、特定のサーバーに依存しません
4
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的に分散され、特定のサーバーに依存しません
4
338デフォルトの名無しさん
2016/05/01(日) 20:44:35.23ID:sHMevs8d Visual Studio Comm. 2015でTypeScript 1.7.4.0を使ってます。
プロジェクトをビルドしてデバッグしても変更が反映されなくなりました。
仕方なく新しいプロジェクトを作ってソースを移動させているのですが、対処法はありますか?
プロジェクトをビルドしてデバッグしても変更が反映されなくなりました。
仕方なく新しいプロジェクトを作ってソースを移動させているのですが、対処法はありますか?
339デフォルトの名無しさん
2016/05/01(日) 21:13:58.28ID:1U34S4Ix340デフォルトの名無しさん
2016/05/02(月) 10:47:24.02ID:H1b5QbBD レスありがとうございます。こんなに早く反応があるとは思いませんでした。見逃してしまって申し訳ないです。
>何の変更がどこに反映されないのか
ソースコードの変更です。
ビルドして実行してもjsが前回のビルドのままで困っていました。
>tsからjsが自動生成されないと言う意味?
>もしそうならtsに文法エラーが有るんじゃないか?
仰る通り文法エラーがあったみたいです。今では正常に実行できています。ご迷惑をおかけしました。
それにしても間違ったコードを書いてもビルドエラーにはならないんですね……。
これではどこでミスったかチェックしにくい。
>何の変更がどこに反映されないのか
ソースコードの変更です。
ビルドして実行してもjsが前回のビルドのままで困っていました。
>tsからjsが自動生成されないと言う意味?
>もしそうならtsに文法エラーが有るんじゃないか?
仰る通り文法エラーがあったみたいです。今では正常に実行できています。ご迷惑をおかけしました。
それにしても間違ったコードを書いてもビルドエラーにはならないんですね……。
これではどこでミスったかチェックしにくい。
341デフォルトの名無しさん
2016/05/02(月) 16:08:44.94ID:WvgoLY0A 「新しいプロジェクトを作ってソースを移動させ」たらうまくいくのだがという話じゃなかったのか
342デフォルトの名無しさん
2016/05/03(火) 07:37:48.31ID:llYnk/DC 「新しいプロジェクトを作ってソースを移動させたらうまくいく」ケースは俺も何度か経験したことがあるなぁ
しかも>>338と違ってコンパイルエラーは発生していない
ビルドして実行してもjsが前回のビルドのままってところまでは一致してるんだよな
(そもそもビルドできないのだが)
しかも>>338と違ってコンパイルエラーは発生していない
ビルドして実行してもjsが前回のビルドのままってところまでは一致してるんだよな
(そもそもビルドできないのだが)
343デフォルトの名無しさん
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にも修正をしなくてはならないので困るのだが。
Proj1
typescrpt1.ts
commonA.ts
commonB.ts
Proj2
typescrpt2.ts
commonA.ts
commonB.ts
両者で共通のtsファイルが二つあるのだが、こう言う場合、オリジナルをProj1に入れておいて、
Proj2から参照するようなやり方は出来る?
現状では、Proj1でCommonA,Bを変更する度にPorj2に手作業でコピーしているのだが、
それだと毎回そんな作業するのが手間だし、うっかりProj2側でCommonのファイルを変更すると
逆にProj1にも修正をしなくてはならないので困るのだが。
344デフォルトの名無しさん
2016/05/09(月) 17:17:18.07ID:8SRbjrMh 既存のファイルを追加すれば参照してくれるでしょ
プロジェクト以下に収めなきゃいけない理由がないなら
common, proj1, proj2と横並びにすればいい
プロジェクト以下に収めなきゃいけない理由がないなら
common, proj1, proj2と横並びにすればいい
345デフォルトの名無しさん
2016/05/09(月) 17:28:41.05ID:pzKdLl0R346デフォルトの名無しさん
2016/05/10(火) 15:04:25.21ID:/c+E/E1d だれも分からないの?
347デフォルトの名無しさん
2016/05/10(火) 15:34:09.22ID:FvQx+NTV VSでTypeScriptやってる人が少ないんでないの?
CとかC++を一緒にやってる人じゃないと最近の人はVSCodeを使うだろうし
CとかC++を一緒にやってる人じゃないと最近の人はVSCodeを使うだろうし
348デフォルトの名無しさん
2016/05/10(火) 18:31:49.18ID:/c+E/E1d349デフォルトの名無しさん
2016/05/10(火) 22:20:05.90ID:ygHcjv1V 私もやり方知りたいが分からんのでスタティックリンクにしてるがそれじゃ駄目?
350デフォルトの名無しさん
2016/05/10(火) 22:23:56.70ID:/c+E/E1d >>349
windowsでスタテクリンク出来る?
windowsでスタテクリンク出来る?
351デフォルトの名無しさん
2016/05/10(火) 22:31:47.62ID:ygHcjv1V ジャンクションでググて
352デフォルトの名無しさん
2016/05/10(火) 22:34:19.65ID:LhMpTcEU >>343
思想的には commonA/B を独立したプロジェクトにしてモジュールとして再利用するんだろうな。
こっそり同一ファイル扱いにするならファイル or フォルダをシンボリックリンクにするか。
これと似たようなものだが、昔は svn:externals を使ったこともあったな。
思想的には commonA/B を独立したプロジェクトにしてモジュールとして再利用するんだろうな。
こっそり同一ファイル扱いにするならファイル or フォルダをシンボリックリンクにするか。
これと似たようなものだが、昔は svn:externals を使ったこともあったな。
353デフォルトの名無しさん
2016/05/11(水) 21:11:57.56ID:b7E4GV28 WindowsXPはハードリンクが出来るようになって便利だからフォルダをハードリンクにしたんだ
で、リンクした方が不要になったからごみ箱に入れたんだ
まだ、元のフォルダ内はなんともなかった
暫くたってごみ箱を空にしたんだよ
そしたら元のフォルダ内のファイルが全部消去されちまったんだよ!当然ごみ箱にも無い
要するにWindowsでフォルダをハードリンクすんなって事
で、リンクした方が不要になったからごみ箱に入れたんだ
まだ、元のフォルダ内はなんともなかった
暫くたってごみ箱を空にしたんだよ
そしたら元のフォルダ内のファイルが全部消去されちまったんだよ!当然ごみ箱にも無い
要するにWindowsでフォルダをハードリンクすんなって事
354デフォルトの名無しさん
2016/05/11(水) 22:31:42.85ID:3ijDNnlQ355デフォルトの名無しさん
2016/05/12(木) 18:40:46.37ID:jzt1qSkA >>353
Windowsってフォルダのハードリンク作れたっけ?
Windowsってフォルダのハードリンク作れたっけ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★5 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 貧民アニオタ向けdアニメ、値上げへ [175344491]
- 【高市変質者】 お尻を出している 小太りTシャツの自転車乗りが発生 😱 [485983549]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 高市早苗ショック直撃のホテルホテル業界 次のホ◯ショックは何だ? [695089791]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
