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
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2015/04/30(木) 18:37:29.98ID:ynMflk1l2015/05/01(金) 11:16:24.11ID:O5IrbREb
https://twitter.com/ironshay/status/593855606747860992
Anders, father of C#, and Misko, father of angular,
on the same stage at Build2015.
Anders, father of C#, and Misko, father of angular,
on the same stage at Build2015.
3デフォルトの名無しさん
2015/05/01(金) 12:23:58.69ID:Cd44J9+J >>2
MSとGoogle夢の共演
MSとGoogle夢の共演
2015/05/01(金) 16:28:43.35ID:Cd44J9+J
Announcing TypeScript 1.5 Beta
http://blogs.msdn.com/b/typescript/archive/2015/04/30/announcing-typescript-1-5-beta.aspx
しかし、いきなり大量のコンパイルエラーが…
まだ更新しない方が良さそう
http://blogs.msdn.com/b/typescript/archive/2015/04/30/announcing-typescript-1-5-beta.aspx
しかし、いきなり大量のコンパイルエラーが…
まだ更新しない方が良さそう
2015/05/03(日) 17:06:42.35ID:rBxa49N8
インストールしたら1.5 Betaが入りました。
$ tsc sample.tsでコンパイルしたjavascriptファイルを$ node sample.jsで実行すると
__.prototype = b.prototype;の箇所でエラーになるんですが
typescriptの書き方でおかしいところを教えてください
module M {
export interface aInterface {
f1(): void;
}
export interface bInterface {
f2(): void;
}
class A extends B implements aInterface {
f1() {
console.log(1);
}
}
class B implements bInterface {
f2() {
console.log(2);
}
}
}
$ tsc sample.tsでコンパイルしたjavascriptファイルを$ node sample.jsで実行すると
__.prototype = b.prototype;の箇所でエラーになるんですが
typescriptの書き方でおかしいところを教えてください
module M {
export interface aInterface {
f1(): void;
}
export interface bInterface {
f2(): void;
}
class A extends B implements aInterface {
f1() {
console.log(1);
}
}
class B implements bInterface {
f2() {
console.log(2);
}
}
}
2015/05/03(日) 17:38:50.79ID:RegehUyj
>>5
BをAより前に書く
BをAより前に書く
2015/05/03(日) 18:27:42.73ID:H+7a6WF5
2015/05/12(火) 21:39:01.53ID:bsrem9uN
typescriptの勉強の為、型推論とanyを使わない書き方を知りたいのですが
コンパイルすると error TS2339: Property 'classList' does not exist on type 'EventTarget'.
ってエラーが出ます。
(1)と(2)の行を型指定しなければエラーが出ないのですが、どのような型を指定したらエラーがでないのでしょうか?
class A {
eventFunc(e: MouseEvent) { // (1)
var target:EventTarget = e.target; // (2)
target.classList.add('red');
}
f() {
window.addEventListener('click', this.eventFunc, false);
}
}
コンパイルすると error TS2339: Property 'classList' does not exist on type 'EventTarget'.
ってエラーが出ます。
(1)と(2)の行を型指定しなければエラーが出ないのですが、どのような型を指定したらエラーがでないのでしょうか?
class A {
eventFunc(e: MouseEvent) { // (1)
var target:EventTarget = e.target; // (2)
target.classList.add('red');
}
f() {
window.addEventListener('click', this.eventFunc, false);
}
}
2015/05/13(水) 08:53:02.33ID:8FgeUemt
(2)をvar target = <Element>e.target;でいいんじゃないかな
DOMの仕様でtargetがElementではないケースがあるのかどうか知らないけど、少なくとも自分で扱う範囲なら問題ないでしょ
DOMの仕様でtargetがElementではないケースがあるのかどうか知らないけど、少なくとも自分で扱う範囲なら問題ないでしょ
2015/05/13(水) 10:56:22.23ID:2k7sC9bw
>>8
classListだから
var target = <HTMLElement>e.target;
または
var target: HTMLElement = e.target;
じゃないかな?
分からない場合はlib.d.tsを見ればいいよ
classListだから
var target = <HTMLElement>e.target;
または
var target: HTMLElement = e.target;
じゃないかな?
分からない場合はlib.d.tsを見ればいいよ
2015/05/13(水) 17:58:04.11ID:EXojY7d0
最初の頃は律儀に型指定してたけど面倒くさいからもうやってない
コンパイル速度が上がるわけでもない。
コンパイル速度が上がるわけでもない。
2015/05/14(木) 11:17:19.81ID:gHUa6+Se
tsc --noImplicitAnyでかつ明示的にanyを使ってなくてエラーがでなければ
型安全が保たれてるから何も毎回型指定する必要はないよ
ただjquery.d.tsとかanyだらけなんで実行しないとエラーが出ない事とかよくある
単純にjQuery使う程度ならJavaScriptのままでいいとは思う
型安全が保たれてるから何も毎回型指定する必要はないよ
ただjquery.d.tsとかanyだらけなんで実行しないとエラーが出ない事とかよくある
単純にjQuery使う程度ならJavaScriptのままでいいとは思う
2015/06/04(木) 21:53:08.26ID:jTi6Q4y/
やっぱ堅い仕様で書いてるとtscでインライン化して欲しくなっちゃうなぁ
2015/06/05(金) 11:52:22.54ID:QvLzrgmO
2015/06/06(土) 09:46:32.31ID:be84NOOA
2015/06/07(日) 13:32:40.51ID:yxti539q
1.5がなかなか正式リリースされないのはなんでぞ
2015/06/07(日) 20:32:21.84ID:4Wk1GroN
2015/06/09(火) 14:13:38.63ID:X0sByrSC
>>15
インライン化がもし速度の為だったら速くなるかどうかは未知数だな
JITコンパイラの高速化の癖というか挙動を予測するのはかなりむずい
あくまで主観だけど長くなった関数は高速に実行されにくくて
細かく関数に分けた方が速くなる気がする (実際にそういう事はあった)
関数単位でコンパイルするしないを決めてるっぽいし
インライン化がもし速度の為だったら速くなるかどうかは未知数だな
JITコンパイラの高速化の癖というか挙動を予測するのはかなりむずい
あくまで主観だけど長くなった関数は高速に実行されにくくて
細かく関数に分けた方が速くなる気がする (実際にそういう事はあった)
関数単位でコンパイルするしないを決めてるっぽいし
2015/06/09(火) 22:54:39.34ID:wugeehUL
>>17
サンキュー
サンキュー
2015/06/10(水) 17:03:59.59ID:/7VhIJtD
解析によるインライン化はtscでもJITでも好きにしてくれていいけど
inlineキーワードで明示できた方が気持ち的にスッキリする
inlineキーワードで明示できた方が気持ち的にスッキリする
2015/06/18(木) 11:14:55.39ID:kEEgKM4/
ES6がいろんなブラウザで動かせるようになった頃にTypeScriptってどうなるの?
2015/06/18(木) 13:05:05.85ID:4ooRsfQ9
ECMAScript2015(旧ES6)がリリースされたんだな
>>21
TypeScriptの最大のメリットは静的型チェックだから有用性は全く変わらない
他にもprivate指定とかも有用だし既にES7(ES2016?)の仕様も先取りしようとしてるよ
>>21
TypeScriptの最大のメリットは静的型チェックだから有用性は全く変わらない
他にもprivate指定とかも有用だし既にES7(ES2016?)の仕様も先取りしようとしてるよ
2015/07/09(木) 12:12:04.05ID:6sfBPUUP
newさせないようにコンストラクターを非公開にしたい
現状でも実現できるけど、そのためにインターフェースを2つも書くのは面倒くさい
現状でも実現できるけど、そのためにインターフェースを2つも書くのは面倒くさい
2015/07/15(水) 10:51:34.25ID:4m+kxR2f
http://blogs.msdn.com/b/typescript/archive/2015/07/13/the-typescript-team-is-hiring.aspx
TypeScript Teamの求人だってさ
TypeScript Teamの求人だってさ
25デフォルトの名無しさん
2015/07/21(火) 01:31:13.85ID:/gCXtG+X Announcing TypeScript 1.5
http://blogs.msdn.com/b/typescript/archive/2015/07/20/announcing-typescript-1-5.aspx
VS2015と合わせてきたか
http://blogs.msdn.com/b/typescript/archive/2015/07/20/announcing-typescript-1-5.aspx
VS2015と合わせてきたか
2015/07/21(火) 01:32:58.22ID:/gCXtG+X
https://github.com/Microsoft/TypeScript/wiki/Roadmap
>1.6
>ES6 Generators
>Local types
>Generic type aliases
>Expressions in class extends clauses
>Class expressions
>exclude property in tsconfig.json
>User defined type guard functions
>async/await for ES6
>External module resolution enhancements
>JSX support
>Intersection types
>abstract classes and methods
次の仕込み進んでるね
>1.6
>ES6 Generators
>Local types
>Generic type aliases
>Expressions in class extends clauses
>Class expressions
>exclude property in tsconfig.json
>User defined type guard functions
>async/await for ES6
>External module resolution enhancements
>JSX support
>Intersection types
>abstract classes and methods
次の仕込み進んでるね
2015/07/21(火) 02:33:09.52ID:rWNspVF5
昔はJScriptという亜種JavaScriptを作っていたMSが
今はJavaScriptの未来を作ってるんだから興味深いよ。
V8を作ってるGoogleが作ってるAngularJSが
TypeScriptを採用してるっていうんだからね。
世の中何が起こるかわからない。
今はJavaScriptの未来を作ってるんだから興味深いよ。
V8を作ってるGoogleが作ってるAngularJSが
TypeScriptを採用してるっていうんだからね。
世の中何が起こるかわからない。
2015/07/21(火) 10:29:14.64ID:JRZO1Ijb
ES6以降の見識とかモダン言語のたしなみがないと新機能を追いかけるのは難しくなってきてるな
29デフォルトの名無しさん
2015/09/03(木) 18:56:51.43ID:nwE/lfZd2015/09/09(水) 13:41:12.43ID:/LabsqIc
node.js 4.0.0 がリリースされたけど tsc 1.5.3 でのコンパイルは問題なかったよ
31デフォルトの名無しさん
2015/09/17(木) 11:57:54.97ID:EJYiGj1J TypeScript 1.6 来た!
http://blogs.msdn.com/b/typescript/archive/2015/09/16/announcing-typescript-1-6.aspx
classとか型関連の機能追加が多いかな
http://blogs.msdn.com/b/typescript/archive/2015/09/16/announcing-typescript-1-6.aspx
classとか型関連の機能追加が多いかな
2015/09/17(木) 13:08:48.57ID:1pEQnj0M
日本語で更新内容を教えて
33デフォルトの名無しさん
2015/09/17(木) 13:39:47.54ID:EJYiGj1J >>32
誰かがブログで解説するだろうからそれを待て
あと1.6でオブジェクトリテラルの型チェックが厳密になって大量のエラーが…
https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes
↑ここに対処法とか書いてあるからバージョンアップする場合は見るべし
誰かがブログで解説するだろうからそれを待て
あと1.6でオブジェクトリテラルの型チェックが厳密になって大量のエラーが…
https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes
↑ここに対処法とか書いてあるからバージョンアップする場合は見るべし
2015/09/18(金) 00:34:58.40ID:RRhCs/3r
>>32
TypeScript 1.6.0-beta 変更点
http://qiita.com/vvakame/items/072fa78f9fe496edd1f0
TypeScriptがReactをサポート
http://www.infoq.com/jp/news/2015/09/typescript16-react
1.6betaの記事だけど、1.6正式版でも同じだよ
TypeScript 1.6.0-beta 変更点
http://qiita.com/vvakame/items/072fa78f9fe496edd1f0
TypeScriptがReactをサポート
http://www.infoq.com/jp/news/2015/09/typescript16-react
1.6betaの記事だけど、1.6正式版でも同じだよ
2015/09/29(火) 13:25:38.28ID:5DFpZmVK
typescriptって型を省略せずに書くのが王道なの?どうなのかおしえてください
2015/09/29(火) 13:57:38.01ID:k2h28xWP
>>35
var a = 1;
は型を省略して書いてるように見えるが型推論されてaはnumber型に固定される
その後a = "hoge";と書くとエラーになる
型推論をあてにして型を省略するのは普通だがそういう事を聞いてんの?
var a = 1;
は型を省略して書いてるように見えるが型推論されてaはnumber型に固定される
その後a = "hoge";と書くとエラーになる
型推論をあてにして型を省略するのは普通だがそういう事を聞いてんの?
2015/09/29(火) 14:07:02.02ID:YDlHSLNo
partialはサポートしてないんですよね?
2015/09/29(火) 14:10:18.85ID:RAm+PgpZ
>>36
これからは型をかかないようにします
これからは型をかかないようにします
2015/10/01(木) 18:23:15.46ID:c/9pCOim
関数の引数の型は書いて下さいね
あと --noImplicitAny は忘れずに
あと --noImplicitAny は忘れずに
2015/10/01(木) 18:44:40.47ID:JwHQ7pBT
--noImplicitAny を付けてれば引き数の型を書かないとエラーになるけど
戻り値の型は省略できてしまう
コンパイラは型推論で戻り値の型は分かるから補完候補の表示で型は分かるけど
戻り値の型もちゃんと書いた方がいいね
そうすると整数を返す予定だったところを文字列返しちゃった時にエラーになる
戻り値の型は省略できてしまう
コンパイラは型推論で戻り値の型は分かるから補完候補の表示で型は分かるけど
戻り値の型もちゃんと書いた方がいいね
そうすると整数を返す予定だったところを文字列返しちゃった時にエラーになる
2015/10/02(金) 02:53:49.54ID:HtrqvoEB
>>37
対応してませんね
けれど前から提案はされていて、C#と異なる使い方も模索されているみたいです
Partial classes
https://github.com/Microsoft/TypeScript/issues/563
Suggestion: Reopen static and instance side of classes
https://github.com/Microsoft/TypeScript/issues/2957
対応してませんね
けれど前から提案はされていて、C#と異なる使い方も模索されているみたいです
Partial classes
https://github.com/Microsoft/TypeScript/issues/563
Suggestion: Reopen static and instance side of classes
https://github.com/Microsoft/TypeScript/issues/2957
2015/10/02(金) 12:29:38.37ID:O/xnKl5a
2015/10/03(土) 10:49:02.03ID:HkSezUmR
コードの中にnew Promiseを書くと
tsc test.tsでチェックしたら
error TS2304: Cannot find name 'Promise'
って出るんですがこれはどうしたらでなく出来ますか?
tsc test.tsでチェックしたら
error TS2304: Cannot find name 'Promise'
って出るんですがこれはどうしたらでなく出来ますか?
2015/10/03(土) 11:10:26.45ID:x61qrQJS
>>43
tsc --target ES6 にするかそれが無理なら
https://github.com/borisyankov/DefinitelyTyped/tree/master/es6-promise
からes6-promise.d.tsを落としてくる
tsc --target ES6 にするかそれが無理なら
https://github.com/borisyankov/DefinitelyTyped/tree/master/es6-promise
からes6-promise.d.tsを落としてくる
2015/10/03(土) 11:39:52.85ID:HkSezUmR
--target ES6を指定します
どうもありがとうございます
どうもありがとうございます
2015/10/03(土) 18:36:19.11ID:OMUtivN5
var i;
var l;
var a = [
{"a":1},
{"b":1},
]
for (var i = 0; i < a.length; i++) {
console.log(a[i]);
}
コンパイルすると
TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'any', but here has type 'number'
ってなるんですがよく分かりませんどうかけばいいんでしょうか
var l;
var a = [
{"a":1},
{"b":1},
]
for (var i = 0; i < a.length; i++) {
console.log(a[i]);
}
コンパイルすると
TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'any', but here has type 'number'
ってなるんですがよく分かりませんどうかけばいいんでしょうか
2015/10/03(土) 23:27:40.80ID:x61qrQJS
>>46
エラーメッセージが理解出来れば分かる事ではあるが…
var i; ← iの型がany
for (var i = 0; ← iの型がnumberだから矛盾してると言ってる
var i;を消すかvar i: number;とすればいいよ
エラーメッセージが理解出来れば分かる事ではあるが…
var i; ← iの型がany
for (var i = 0; ← iの型がnumberだから矛盾してると言ってる
var i;を消すかvar i: number;とすればいいよ
2015/10/04(日) 13:23:21.78ID:DvM48NAd
超超初心者なんですが
仮にグローバルで宣言したiがforでなく別の関数で使われることを意図していた場合
>>46のように変数iをfor文でたまたま同じ名前の制御変数としてvar宣言すると思うのですが
このときvarが付いているにも関わらずfor文のiは一行目で宣言したiとみなされてしまうってことですか?
仮にグローバルで宣言したiがforでなく別の関数で使われることを意図していた場合
>>46のように変数iをfor文でたまたま同じ名前の制御変数としてvar宣言すると思うのですが
このときvarが付いているにも関わらずfor文のiは一行目で宣言したiとみなされてしまうってことですか?
2015/10/04(日) 13:37:43.55ID:khdgfcjT
2015/10/04(日) 13:41:16.06ID:bHkc51Yk
TSはES5ターゲットでもlet/const使えるからへーきへーき
2015/10/04(日) 13:42:29.90ID:khdgfcjT
2015/10/04(日) 13:44:14.49ID:khdgfcjT
かぶった…まぁそういう事だ
2015/10/04(日) 13:49:24.42ID:DvM48NAd
54デフォルトの名無しさん
2015/10/05(月) 00:57:09.65ID:908hRhwN2015/10/15(木) 21:21:16.18ID:8y87T4ny
1.7のissue残り3つ
そろそろ来るか
そろそろ来るか
2015/10/16(金) 09:45:15.72ID:cndR1OOY
issueが0になってからリリースまで1ヶ月以上掛かるし
1.6がリリースされた時は1.6.2だったからもう少し先な気がする
1.6がリリースされた時は1.6.2だったからもう少し先な気がする
2015/10/17(土) 16:42:41.11ID:/J6P+2iK
ポリモthisが待ち遠しい
2015/10/23(金) 19:57:18.48ID:uz+nJ7WP
2015/10/23(金) 23:22:47.24ID:vOh1PKiJ
interface IEquatable {
equals(other: this): boolean
}
とかかな
equals(other: this): boolean
}
とかかな
2015/10/23(金) 23:33:29.49ID:oFKlQBDH
typescriptで使いやすいEditorでおすすめってなんですかね?
MS由来からいってVSなんでしょうけど、当方Macなので、、、、
MS由来からいってVSなんでしょうけど、当方Macなので、、、、
2015/10/24(土) 11:24:42.03ID:lLID1QIl
>>60
ttps://github.com/Microsoft/TypeScript/wiki/TypeScript-Editor-Support
普段何使ってるんだよ
Vimは導入が難しいが、何するにしても特化した環境が作れるぞ
ttps://github.com/Microsoft/TypeScript/wiki/TypeScript-Editor-Support
普段何使ってるんだよ
Vimは導入が難しいが、何するにしても特化した環境が作れるぞ
2015/10/24(土) 14:26:29.93ID:otxAXsrh
>>59
class Base {
getThis(): Base { return this; }
}
class Derived extends Base {
print(): void { console.log('Derived'); }
}
let derived = new Derived();
derived.getThis().print(); // 1.6.2だとBaseにprint()がねーよと怒られる
1.7だと
getThis(): this { return this; }
にする事でコンパイル通ってちゃんと実行も出来る
って事は理解したけど、equals(other: this)のthisって自分の型名のエイリアス
として使えるから便利って事であってるの?
class Base {
getThis(): Base { return this; }
}
class Derived extends Base {
print(): void { console.log('Derived'); }
}
let derived = new Derived();
derived.getThis().print(); // 1.6.2だとBaseにprint()がねーよと怒られる
1.7だと
getThis(): this { return this; }
にする事でコンパイル通ってちゃんと実行も出来る
って事は理解したけど、equals(other: this)のthisって自分の型名のエイリアス
として使えるから便利って事であってるの?
2015/10/24(土) 14:31:41.39ID:otxAXsrh
>>60
Emacsと
https://github.com/ananthakumaran/tide
↑を使う事でVSに劣らないインテリセンス環境が出来上がるぞ(ページ内のscreencastを見るべし!)
ちなみに常用してるけどMac版Emacsは使った事ないから詳細は分からん
Emacsと
https://github.com/ananthakumaran/tide
↑を使う事でVSに劣らないインテリセンス環境が出来上がるぞ(ページ内のscreencastを見るべし!)
ちなみに常用してるけどMac版Emacsは使った事ないから詳細は分からん
2015/10/24(土) 14:48:22.39ID:otxAXsrh
>>59
class Base {
equals(other: this): boolean { return other.name === "Derived"; }
}
class Derived extends Base {
name = "Derived";
}
let derived = new Derived();
console.log(derived.equals(derived));
だと、1.7でも(正確には1.7.0-dev.20151016)
test.ts(3,18): error TS2339: Property 'name' does not exist on type 'Base'.
って、ポリモらないけど…なんでなん?
class Base {
equals(other: this): boolean { return other.name === "Derived"; }
}
class Derived extends Base {
name = "Derived";
}
let derived = new Derived();
console.log(derived.equals(derived));
だと、1.7でも(正確には1.7.0-dev.20151016)
test.ts(3,18): error TS2339: Property 'name' does not exist on type 'Base'.
って、ポリモらないけど…なんでなん?
2015/10/24(土) 16:15:55.69ID:plgIlyg5
2015/10/24(土) 17:46:56.82ID:lLID1QIl
>>64
そういった使い方は無いと思うよ。その場合はジェネリックを使うといい
class Base {
equals<T extends { name: string; }>(other: T): boolean { return other.name === "Derived"; }
}
そういった使い方は無いと思うよ。その場合はジェネリックを使うといい
class Base {
equals<T extends { name: string; }>(other: T): boolean { return other.name === "Derived"; }
}
2015/10/25(日) 00:25:48.72ID:1wUVsAr0
>>66
https://github.com/Microsoft/TypeScript/pull/4910
このページのサンプルコードで>>64みたいなのがあったよ
>>62の戻り値バージョンは直感的で使い易いし良いんだけど
引き数バージョンがポリモらないのは何か変だなとは思う
ま、ジェネリックがあるから困らないけど1.7がちゃんとリリースされたら
また確認してみよう
https://github.com/Microsoft/TypeScript/pull/4910
このページのサンプルコードで>>64みたいなのがあったよ
>>62の戻り値バージョンは直感的で使い易いし良いんだけど
引き数バージョンがポリモらないのは何か変だなとは思う
ま、ジェネリックがあるから困らないけど1.7がちゃんとリリースされたら
また確認してみよう
2015/10/25(日) 07:40:54.38ID:bIzVFZFH
2015/10/25(日) 15:05:43.36ID:MYRFLLoW
>>68
コールの仕方がderived.equalsなんだから未来予知なんてしなくたって
コンパイル時にthisがDerivedなのが決まるでしょ (ジェネリックの場合はTがDerived)
C++は呼び出した時に型を決めてコンパイルされるからそういうのが当たり前だけど
TypeScriptはジェネリックとかも先にコンパイルしようとすんだな
とりあえずそういう仕様なのは理解したよ
コールの仕方がderived.equalsなんだから未来予知なんてしなくたって
コンパイル時にthisがDerivedなのが決まるでしょ (ジェネリックの場合はTがDerived)
C++は呼び出した時に型を決めてコンパイルされるからそういうのが当たり前だけど
TypeScriptはジェネリックとかも先にコンパイルしようとすんだな
とりあえずそういう仕様なのは理解したよ
2015/10/25(日) 20:07:24.22ID:bIzVFZFH
2015/10/26(月) 11:50:38.96ID:2PrT+848
>>70
は?継承されたメソッドのderived.equalsでアクセスしてんのにthisがBaseなわけないだろ
お前が言ってんのは字面上の事だろ
だからC++はジェネリック(テンプレート)は呼び出された時しかコンパイルされないんだよ
TypeScriptもそうだと思っていたと先に書いただろ
equals(other: this)もジェネリックと同じようなもんだろうと思っていたんだよ
同じ事なんども言わせるな
は?継承されたメソッドのderived.equalsでアクセスしてんのにthisがBaseなわけないだろ
お前が言ってんのは字面上の事だろ
だからC++はジェネリック(テンプレート)は呼び出された時しかコンパイルされないんだよ
TypeScriptもそうだと思っていたと先に書いただろ
equals(other: this)もジェネリックと同じようなもんだろうと思っていたんだよ
同じ事なんども言わせるな
2015/10/26(月) 12:01:33.27ID:2PrT+848
ちなみに>>64のコードはコンパイルエラーは出力されるが吐き出された.jsを
実行すると問題なく実行出来る
JavaScriptは動的型だから当然だけど、TypeScriptもジェネリック(とポリモthis)は
呼び出し時に毎回コンパイルした方がよりJavaScriptに近くなるとは思うけどね
(コンパイルというか型チェックだけだが)
実行すると問題なく実行出来る
JavaScriptは動的型だから当然だけど、TypeScriptもジェネリック(とポリモthis)は
呼び出し時に毎回コンパイルした方がよりJavaScriptに近くなるとは思うけどね
(コンパイルというか型チェックだけだが)
2015/10/26(月) 13:14:02.12ID:Jg07UfdQ
エラーになってるのに何とち狂ってんだ
お前はもうそう思い込んでていいから他の人間に迷惑かけるなよ
お前はもうそう思い込んでていいから他の人間に迷惑かけるなよ
2015/10/26(月) 13:23:02.34ID:2PrT+848
>>73
言ってる意味が理解出来ないなら無理に意味不明な返答しなくていいよ
言ってる意味が理解出来ないなら無理に意味不明な返答しなくていいよ
2015/10/26(月) 13:29:03.77ID:rrrZ2q/W
C++のテンプレートではそうじゃないみたいだけど
他言語のジェネリクスやらパラメータ多相だと型引数T(ここで言えばthis)がnameを持つって制約がなけりゃ
other.nameとかやってる時点でコンパイルエラーになるのが普通
呼び出し側でどう呼び出されてようが知らん
他言語のジェネリクスやらパラメータ多相だと型引数T(ここで言えばthis)がnameを持つって制約がなけりゃ
other.nameとかやってる時点でコンパイルエラーになるのが普通
呼び出し側でどう呼び出されてようが知らん
2015/10/26(月) 13:40:49.36ID:2PrT+848
だから説明してくれなくてもTypeScriptの仕様は知ってるよ
class Base {
getThis(): this { return this; }
}
class Derived extends Base {
name = "Derived";
}
let derived = new Derived();
console.log(derived.equals(derived)); // OK:コンパイルも実行も問題ない
この場合のgetThis(): this { return this; }はBaseにあるのに型はDerivedになる
それがポリモthis
引き数版もそうだと思ったら違ったから変だなとおもっただけだ
つうか何回同じ事書かせるんだよ…
class Base {
getThis(): this { return this; }
}
class Derived extends Base {
name = "Derived";
}
let derived = new Derived();
console.log(derived.equals(derived)); // OK:コンパイルも実行も問題ない
この場合のgetThis(): this { return this; }はBaseにあるのに型はDerivedになる
それがポリモthis
引き数版もそうだと思ったら違ったから変だなとおもっただけだ
つうか何回同じ事書かせるんだよ…
2015/10/26(月) 13:42:45.78ID:2PrT+848
間違えた…
> console.log(derived.equals(derived));
derived.getThis().print();
> console.log(derived.equals(derived));
derived.getThis().print();
2015/10/26(月) 13:45:10.06ID:2PrT+848
class Base {
getThis(): this { return this; }
}
class Derived extends Base {
print(): void { console.log('Derived'); }
}
let derived = new Derived();
derived.getThis().print(); // OK:コンパイルも実行も問題ない
なんどもゴメンよ…こっちだった
getThis(): this { return this; }
}
class Derived extends Base {
print(): void { console.log('Derived'); }
}
let derived = new Derived();
derived.getThis().print(); // OK:コンパイルも実行も問題ない
なんどもゴメンよ…こっちだった
2015/10/26(月) 15:10:36.99ID:rrrZ2q/W
class Base {
identity(a: this): this { return a; }
}
class Derived extends Base { /*略*/ }
let derived = new Derived();
derived.indentity(derived) // => Derived
これで戻り値だろうが引数だろうがthis型の意味が変わらんのは分かるだろ
んでもうひとつ
親クラスの中で子クラスの実装に依存するような定義することがおかしいと思わんのか
テンプレートみたいにthisを具体的な型に置き換えたメソッドを実際に生成してくれるって訳じゃねーんだぞ
identity(a: this): this { return a; }
}
class Derived extends Base { /*略*/ }
let derived = new Derived();
derived.indentity(derived) // => Derived
これで戻り値だろうが引数だろうがthis型の意味が変わらんのは分かるだろ
んでもうひとつ
親クラスの中で子クラスの実装に依存するような定義することがおかしいと思わんのか
テンプレートみたいにthisを具体的な型に置き換えたメソッドを実際に生成してくれるって訳じゃねーんだぞ
2015/10/26(月) 15:38:26.33ID:2PrT+848
>>79
> identity(a: this): this { return a; }
なるほど結局やってくれるのはキャストだけって事だな
> 親クラスの中で子クラスの実装に依存するような定義することがおかしいと思わんのか
いや別に…ジェネリックとかは
equals(other: Derived): boolean;
equals(other: Hoge): boolean;
equals(other: any): boolean { return other.name === "Derived"; }
を短く書けるってだけだぞ
やってる事はいたって普通じゃん
> identity(a: this): this { return a; }
なるほど結局やってくれるのはキャストだけって事だな
> 親クラスの中で子クラスの実装に依存するような定義することがおかしいと思わんのか
いや別に…ジェネリックとかは
equals(other: Derived): boolean;
equals(other: Hoge): boolean;
equals(other: any): boolean { return other.name === "Derived"; }
を短く書けるってだけだぞ
やってる事はいたって普通じゃん
2015/10/26(月) 15:41:54.45ID:2PrT+848
equals(other: any): boolean { return other.name === "Derived"; }
よく考えたらこれで良かったなw
よく考えたらこれで良かったなw
2015/10/26(月) 17:12:36.83ID:RV+rpgqN
VisualStudioでTypeScriptを始めてみたのですが加算が上手く出来ません。
数値で入力して数値で計算しているつもりですが文字列の連結になってしまいます。
以下のソースのどこかに問題がありますでしょうか?
それとも加算の時は明示的にNumberを付けるのが暗黙の了解なのでしょうか?
■index.htmlに以下を追加
<input id="id1" type="number" value="100" />
<input id="id2" type="number" value="50" />
<button type="button" onclick="MyCalc(document.getElementById('id1').value, document.getElementById('id2').value, 'id3');">Calc</button>
<p id="id3"></p>
■app.tsに以下を追加
function MyCalc(a: number, b: number, idOut: string) {
var add: number = a + b; // ←文字列の連結になる
//var add: number = Number(a) + Number(b); // ←数値の加算になる
document.getElementById(idOut).innerHTML = add.toString();
}
数値で入力して数値で計算しているつもりですが文字列の連結になってしまいます。
以下のソースのどこかに問題がありますでしょうか?
それとも加算の時は明示的にNumberを付けるのが暗黙の了解なのでしょうか?
■index.htmlに以下を追加
<input id="id1" type="number" value="100" />
<input id="id2" type="number" value="50" />
<button type="button" onclick="MyCalc(document.getElementById('id1').value, document.getElementById('id2').value, 'id3');">Calc</button>
<p id="id3"></p>
■app.tsに以下を追加
function MyCalc(a: number, b: number, idOut: string) {
var add: number = a + b; // ←文字列の連結になる
//var add: number = Number(a) + Number(b); // ←数値の加算になる
document.getElementById(idOut).innerHTML = add.toString();
}
2015/10/26(月) 17:29:52.14ID:68zEKPr/
ゴミだな
2015/10/26(月) 17:30:24.13ID:2PrT+848
2015/10/26(月) 18:04:54.71ID:68zEKPr/
つまり、
function MyCalc(a: number, b: number, idOut: string) {
var add: number = Number(a) + Number(b);
document.getElementById(idOut).innerHTML = add.toString();
}
とすべきである、と。
何このゴミ言語。
function MyCalc(a: number, b: number, idOut: string) {
var add: number = Number(a) + Number(b);
document.getElementById(idOut).innerHTML = add.toString();
}
とすべきである、と。
何このゴミ言語。
2015/10/26(月) 18:05:52.22ID:jZMivBq6
根がjavascriptだからな
腐っておる
腐っておる
2015/10/26(月) 20:48:07.59ID:Jg07UfdQ
今日は大漁だなぁ
2015/10/26(月) 21:03:54.01ID:2PrT+848
>>85
MyCalcに文字列を渡してるのは理解してんの?
MyCalcに文字列を渡してるのは理解してんの?
8982
2015/10/26(月) 21:09:33.30ID:+CoO9wxe >>84
tsの引数でnumberと指定しているところにhtmlからstringを渡してるのにエラーでないのが正常ってことですか。
なんとも言えないモヤモヤした気分ですがそういうものだと思って納得します。
ありがとうございました。
tsの引数でnumberと指定しているところにhtmlからstringを渡してるのにエラーでないのが正常ってことですか。
なんとも言えないモヤモヤした気分ですがそういうものだと思って納得します。
ありがとうございました。
2015/10/26(月) 23:08:05.78ID:xkX95Mex
そもそも今時htmlファイルにJSのコードがあるのがクソ
2015/10/27(火) 10:15:27.19ID:VNkjK7Q1
92デフォルトの名無しさん
2015/11/01(日) 10:08:53.87ID:zBN3V9bR ジェネリックと書かれると黒柳徹子の声で脳内再生されるw
かといってジェネリックプログラミングだと長いか。
かといってジェネリックプログラミングだと長いか。
2015/11/01(日) 14:26:27.55ID:85GIjHA4
英語だとGenericsだからジェネリックスと言うべきだろうね
日本語だとジェネリックが多いけど
日本語だとジェネリックが多いけど
94デフォルトの名無しさん
2015/11/01(日) 17:47:18.14ID:wW4dECTr >>92
うむ
うむ
2015/11/04(水) 20:57:38.51ID:hYok3Gvy
ゼネリック
96デフォルトの名無しさん
2015/11/19(木) 23:49:04.62ID:xa/vi52N Microsoftのコードエディタ「Visual Studio Code」β版でオープンソース化、拡張機能で「Go」など約60言語に対応
http://gigazine.net/news/20151119-microsoft-visual-studio-code/
http://gigazine.net/news/20151119-microsoft-visual-studio-code/
2015/11/20(金) 11:13:18.44ID:SnNAjHh0
2015/11/20(金) 11:53:31.08ID:9+9LvV/5
>>97
なるほど。と思った。確かに生きてる教材として価値あるね。
なるほど。と思った。確かに生きてる教材として価値あるね。
2015/11/20(金) 15:30:00.27ID:oa4HKSA2
コーディングガイドラインがTS本体と変わってるな
開発元ですらベストプラクティスが固まってないのか
開発元ですらベストプラクティスが固まってないのか
100デフォルトの名無しさん
2015/11/24(火) 14:34:32.21ID:qZ9OT4oo VSCodeもElectron使ってるしネイティブアプリもTypeScript+Electronで作るのがトレンドなんだな
101デフォルトの名無しさん
2015/11/24(火) 16:51:28.94ID:7M39MrWo >>100
Electronってそんなにトレンドなの?
Electronってそんなにトレンドなの?
102デフォルトの名無しさん
2015/11/24(火) 18:49:02.47ID:qZ9OT4oo >>101
トレンドってのは完全に主観だ
そもそもデスクトップアプリを作る機会があまり無いと思われる
あとブラウザで動くJavaScriptとNode.js用のコードはモジュールの問題とか
色々相容れないものがあって両対応させるのは難しい
この辺はES6のModuleが普及すれば多少は改善するのかね
トレンドってのは完全に主観だ
そもそもデスクトップアプリを作る機会があまり無いと思われる
あとブラウザで動くJavaScriptとNode.js用のコードはモジュールの問題とか
色々相容れないものがあって両対応させるのは難しい
この辺はES6のModuleが普及すれば多少は改善するのかね
104デフォルトの名無しさん
2015/11/27(金) 17:09:34.40ID:/Gh9DtXn New Website Logo: Ericsson
https://github.com/Microsoft/TypeScript/issues/5801
Erlang作った会社もTypeScript使ってるんだね
https://github.com/Microsoft/TypeScript/issues/5801
Erlang作った会社もTypeScript使ってるんだね
105デフォルトの名無しさん
2015/11/28(土) 23:18:53.43ID:CBIJUaS6 TypeScript Advent Calendar 2015
http://qiita.com/advent-calendar/2015/typescript
http://qiita.com/advent-calendar/2015/typescript
106デフォルトの名無しさん
2015/12/01(火) 01:33:36.41ID:z2GrodUr 当日になっても参加一人だけかよTypeScript終わってんな
107デフォルトの名無しさん
2015/12/01(火) 14:46:16.60ID:MI9NKsx/ こういうのは横の繋がりがないと人を集めるの難しそうだな
108デフォルトの名無しさん
2015/12/01(火) 14:52:09.64ID:MI9NKsx/ Announcing TypeScript 1.7
http://blogs.msdn.com/b/typescript/archive/2015/11/30/announcing-typescript-1-7.aspx
http://blogs.msdn.com/b/typescript/archive/2015/11/30/announcing-typescript-1-7.aspx
109デフォルトの名無しさん
2015/12/01(火) 15:22:54.15ID:fXKlxJmK 今回の機能追加はAsync/Awaitとポリモthisぐらいか
1.8も言語機能の追加は小規模だからだいぶ仕様が安定してきた感じだな
1.8も言語機能の追加は小規模だからだいぶ仕様が安定してきた感じだな
110デフォルトの名無しさん
2015/12/01(火) 15:32:51.36ID:fXKlxJmK TypeScriptはその名の通りJavaScript+型なんだからTypeScript固有の話題なんて
もうそんなにないだろ
最新の話題は>>108のブログだけ見てれば十分
言語機能を詳しく知りたい場合は公式のHandbookがスゲー良く出来てるからそれで十分
もうそんなにないだろ
最新の話題は>>108のブログだけ見てれば十分
言語機能を詳しく知りたい場合は公式のHandbookがスゲー良く出来てるからそれで十分
111デフォルトの名無しさん
2015/12/02(水) 00:09:29.85ID:et2ufdl8 コンパイル速度遅くなってきたらしいな
さもありなん
さもありなん
112デフォルトの名無しさん
2015/12/05(土) 15:39:17.84ID:m9DZhLZL 実際アプデしたらクッソ重くなってた
IDEがプチフリして困る
IDEがプチフリして困る
113デフォルトの名無しさん
2015/12/06(日) 02:00:29.98ID:FcGW3Qzp114デフォルトの名無しさん
2015/12/06(日) 22:16:12.04ID:NQ6kkq7S Microsoft、「Edge」のJavaScriptエンジン「Chakra」をオープンソース化へ
http://www.itmedia.co.jp/news/articles/1512/06/news012.html
http://www.itmedia.co.jp/news/articles/1512/06/news012.html
115デフォルトの名無しさん
2015/12/08(火) 13:43:53.13ID:sEPoyyCj >>113
間違いとか中途半端な内容が多いな
取り合えず 2 ** 3 は 2 * 2 * 2 に展開される
整数同士は掛け算に展開して浮動小数点数は Math.pow() を使うようになる
要するに整数のべき乗を整数のままにしておけるという事だな
間違いとか中途半端な内容が多いな
取り合えず 2 ** 3 は 2 * 2 * 2 に展開される
整数同士は掛け算に展開して浮動小数点数は Math.pow() を使うようになる
要するに整数のべき乗を整数のままにしておけるという事だな
116デフォルトの名無しさん
2015/12/08(火) 15:25:18.45ID:sEPoyyCj117デフォルトの名無しさん
2015/12/10(木) 23:32:50.70ID:V7ddkloI 3.14 ** 3 は 3.14 * 3.14 * 3.14 にするよりも pow のほうが早いのか
118デフォルトの名無しさん
2015/12/11(金) 00:19:45.18ID:5K+qhLiA2015/12/14(月) 18:49:41.54ID:R3y1X6jx
http://www.typescriptlang.org/Playground で
以下のコードが実行時エラーになる
意図したものなのかな
function f() {
const Math = void 0;
console.log(2 ** 3);
}
f()
以下のコードが実行時エラーになる
意図したものなのかな
function f() {
const Math = void 0;
console.log(2 ** 3);
}
f()
120デフォルトの名無しさん
2015/12/15(火) 13:48:49.14ID:uFHp5xJr >>119
const Math = void 0;
だとMathがany型になってるからそもそも何やってもコンパイルエラーにはならない
const Math = 1;
console.log(Math.pow(2, 3));
だとコンパイルエラーになるが
console.log(2 ** 3);
がコンパイルエラーにならないのはバグだな
ちなみに1.7のプレリリース版だと2 ** 3は2 * 2 * 2に展開されてた気がするが
1.7.3だと無難にMath.pow(2, 3)のままだな…
const Math = void 0;
だとMathがany型になってるからそもそも何やってもコンパイルエラーにはならない
const Math = 1;
console.log(Math.pow(2, 3));
だとコンパイルエラーになるが
console.log(2 ** 3);
がコンパイルエラーにならないのはバグだな
ちなみに1.7のプレリリース版だと2 ** 3は2 * 2 * 2に展開されてた気がするが
1.7.3だと無難にMath.pow(2, 3)のままだな…
121デフォルトの名無しさん
2015/12/17(木) 17:40:37.59ID:z/Lx0cXl typescriptを書くときの環境みたいなのを教えてください
そういう記事があったら教えてください
webpack?とかpackage.txtとか開発初めのスケルトンが知りたいです
そういう記事があったら教えてください
webpack?とかpackage.txtとか開発初めのスケルトンが知りたいです
122デフォルトの名無しさん
2015/12/17(木) 19:05:38.17ID:Szn4FINI VisualStudio
Azure
Azure
123デフォルトの名無しさん
2015/12/17(木) 22:15:57.04ID:CSxzQpIQ まずエディタを何使いたいかによるな
何でもいいなら無難にVS使うのがいいと思われる
最近ならVisual Studio Codeの方がいいかもしれない
何でもいいなら無難にVS使うのがいいと思われる
最近ならVisual Studio Codeの方がいいかもしれない
124デフォルトの名無しさん
2015/12/18(金) 17:31:03.70ID:uEIUGuN6 VSCodeは.git/とtsconfig.jsonが同じフォルダなのが前提だな…
そうでない場合も多い気がするけどな
ちょっと試用してみたけど上記の問題以外はTypeScript用エディタとして快適に使える
そうでない場合も多い気がするけどな
ちょっと試用してみたけど上記の問題以外はTypeScript用エディタとして快適に使える
125デフォルトの名無しさん
2015/12/18(金) 18:00:03.96ID:eorQTm9j VSCodeに移行したいけどvimが未完成すぎてまだ移行できん
はよVSと同じクオリティに仕上げてくれ
はよVSと同じクオリティに仕上げてくれ
126デフォルトの名無しさん
2015/12/18(金) 19:49:07.87ID:HYHORn7l おもいっきりスレ違いだけどVSCodeの完成度の高さにびっくり
golang開発環境としても最適。マイクロソフトの開発力の高さを目撃したぜ。
一気にATOMより使いやすくなりやがった。
typeScriptも期待していいね
golang開発環境としても最適。マイクロソフトの開発力の高さを目撃したぜ。
一気にATOMより使いやすくなりやがった。
typeScriptも期待していいね
127デフォルトの名無しさん
2015/12/18(金) 20:01:03.80ID:uEIUGuN6 VSCodeの完成度の高さの半分はTypeScriptで作ってるからと言えなくもない
残りの半分はGoogleのChromiumとV8のお陰だが…
残りの半分はGoogleのChromiumとV8のお陰だが…
128デフォルトの名無しさん
2015/12/19(土) 01:32:25.74ID:AUMngiLG 最近のマイクロソフトはC#と並んでNode.js推しが凄いね
次期ASP.NETのビルドシステムもNode.js系
Node.jsの普及に社運をかけているような感じがする
次期ASP.NETのビルドシステムもNode.js系
Node.jsの普及に社運をかけているような感じがする
129デフォルトの名無しさん
2015/12/19(土) 06:11:40.64ID:2wysK+Et MSは自社のJavaScriptエンジンがあるから別にNode.jsを推してるとは思えない
単にNode.jsを使わざるを得ない状況ってだけじゃないかな
現状色んなアプリが別個にNode.jsのランタイムを含めてて無駄過ぎるから
WindowsだったらEdgeとかChakraを使うバージョンがあってもいいと思う
単にNode.jsを使わざるを得ない状況ってだけじゃないかな
現状色んなアプリが別個にNode.jsのランタイムを含めてて無駄過ぎるから
WindowsだったらEdgeとかChakraを使うバージョンがあってもいいと思う
130デフォルトの名無しさん
2015/12/19(土) 08:29:23.06ID:2BX5Ngj+ MS自身自社プロダクトのクロスプラットフォーム化を進めてるのにそんな逆行したいわけがない
131デフォルトの名無しさん
2015/12/19(土) 13:18:54.15ID:2CKHjxE+ Node.js はオワコンなのにね
132デフォルトの名無しさん
2015/12/19(土) 15:19:47.28ID:2BX5Ngj+ 持ち上げられすぎてると思うけどそこまで終わってもない
それよりエレクトロンがモノになるかのほうが不安
それよりエレクトロンがモノになるかのほうが不安
133デフォルトの名無しさん
2015/12/19(土) 17:24:55.88ID:saKWMtLf chakra対応のnode出したりcoreをossにしたりでv8で満足してるわけでもなさそう
134デフォルトの名無しさん
2015/12/20(日) 03:32:05.22ID:3pTsyfVL135デフォルトの名無しさん
2015/12/20(日) 19:25:20.77ID:oiJlcETb オワコンかどうかはわからないけど、jsフロントエンド周りは
変化が早すぎてついていける人が少ないのは確か。
ビルドツールすらなんでそんな変わっていくん?
いっそmakeでいいんじゃないか。
早くデファクトスタンダードでてくんないかな。
Meteorは完全にjs界から見放されているような気もする。(日本だけ?)
変化が早すぎてついていける人が少ないのは確か。
ビルドツールすらなんでそんな変わっていくん?
いっそmakeでいいんじゃないか。
早くデファクトスタンダードでてくんないかな。
Meteorは完全にjs界から見放されているような気もする。(日本だけ?)
136デフォルトの名無しさん
2015/12/20(日) 22:47:15.85ID:ZI2XTWWE GUIツールや、ビルドツール、SSRあたりは残るんじゃないかな。
apiサーバやさらにバックエンドは今より減っていきそうだけど。
apiサーバやさらにバックエンドは今より減っていきそうだけど。
137デフォルトの名無しさん
2015/12/21(月) 11:04:35.60ID:1HvlxK+M Dartがもう少し頑張ってくれてりゃなぁ
138デフォルトの名無しさん
2015/12/21(月) 11:44:53.03ID:+DAq0mOu よくAltJSの括りでDartとかと一緒にされるけどTypeScriptはDartと別モンだと思う
TypeScriptは9割は(特にES6以降の)JavaScriptといっても過言じゃないけど
Dartは全然別の言語だし
Webの世界でJavaScript以外の言語が流行るとは全く思えない
TypeScriptは9割は(特にES6以降の)JavaScriptといっても過言じゃないけど
Dartは全然別の言語だし
Webの世界でJavaScript以外の言語が流行るとは全く思えない
139デフォルトの名無しさん
2015/12/21(月) 14:21:33.13ID:1HvlxK+M javascript無くなってくれないかな
TypeScriptが橋渡しになって引導渡して欲しい
TypeScriptが橋渡しになって引導渡して欲しい
140デフォルトの名無しさん
2015/12/23(水) 16:53:14.82ID:YbqFKYTK >139
それはつまり「IEもChromeもFirefoxもSafariも、既存サイトのJavaScriptを解釈しないようにしろ」ってことだろ
無理だな
それはつまり「IEもChromeもFirefoxもSafariも、既存サイトのJavaScriptを解釈しないようにしろ」ってことだろ
無理だな
141デフォルトの名無しさん
2015/12/23(水) 21:21:43.04ID:Gmfz59Yf142デフォルトの名無しさん
2015/12/23(水) 22:12:53.38ID:VUxrNHJY >>141
WebAssemblyだな
主目的はC++のコードを安全にかつネイティブ並に高速に動かす為のものだが
他の言語を動かす基盤にも十分成り得る
ただ現状でもJavaScriptに変換すれば似たような事にはなってるのに
他の言語が流行ってないから結局今と一緒でしょ
WebAssemblyだな
主目的はC++のコードを安全にかつネイティブ並に高速に動かす為のものだが
他の言語を動かす基盤にも十分成り得る
ただ現状でもJavaScriptに変換すれば似たような事にはなってるのに
他の言語が流行ってないから結局今と一緒でしょ
143デフォルトの名無しさん
2015/12/23(水) 23:08:22.22ID:0c+BTX7l JavaScriptでは難しい最適化を施した多言語から生成できる共通の中間コードの仕様策定だっけ?
デバッグが難しいだろうからほとんどCPUヘビーなとこと広告回避にだけ使われてほかはJavaScriptのままだと思うよ
デバッグが難しいだろうからほとんどCPUヘビーなとこと広告回避にだけ使われてほかはJavaScriptのままだと思うよ
144デフォルトの名無しさん
2015/12/23(水) 23:29:17.65ID:37J5CESF145デフォルトの名無しさん
2015/12/23(水) 23:51:10.03ID:0c+BTX7l >>144
マジかよソニー株売ってくる
マジかよソニー株売ってくる
146デフォルトの名無しさん
2015/12/23(水) 23:52:52.11ID:YbqFKYTK >144
それChromeBook持ってるGoogleの一人勝ちになるんじゃないか
それChromeBook持ってるGoogleの一人勝ちになるんじゃないか
147デフォルトの名無しさん
2015/12/23(水) 23:57:52.58ID:0c+BTX7l 日本一みたいな小粒の尖ったソフト出すメーカーはこういうのでコストかけずにどんどん出していったほうがいいんだろうな
148デフォルトの名無しさん
2015/12/25(金) 02:26:54.28ID:87NUqkxQ TypeScript1.8以降で追加予定または協議中の注目の新機能12つ
http://falsandtru.hatenablog.com/entry/typescript-2016
http://falsandtru.hatenablog.com/entry/typescript-2016
149デフォルトの名無しさん
2015/12/25(金) 10:26:24.39ID:qQE0KVCc noImplicitReturns最高
150デフォルトの名無しさん
2015/12/25(金) 13:17:18.21ID:zNppH846 1.7でも戻り値の型が違うとエラーになるけどnoImplicitReturnsの説明見ると
結構すり抜けるパターンがあったんだな…
全部undefined関連だけど最初からエラーにしとけよ
結構すり抜けるパターンがあったんだな…
全部undefined関連だけど最初からエラーにしとけよ
151デフォルトの名無しさん
2015/12/25(金) 13:34:53.88ID:zNppH846 あとreadonlyはなぜ
function hoge(readonly a: number) { }
と書けないんだよ…
メンバーより引き数に指定出来る事の方がはるかに重要だ
他は劇的に便利になるようなものはないな
function hoge(readonly a: number) { }
と書けないんだよ…
メンバーより引き数に指定出来る事の方がはるかに重要だ
他は劇的に便利になるようなものはないな
152デフォルトの名無しさん
2015/12/25(金) 14:43:14.41ID:ISLz7uba うんこの上に金粉まぶしてもうんこはうんこ
153デフォルトの名無しさん
2015/12/25(金) 15:03:46.23ID:9XEpf0Yk >>151
numberにreadonlyを指定することは意味がないと思うが…
引数がreadonlyであることを表明したいなら
そういうinterfaceを定義すれば済む。現行機能で十分じゃないか?
指定子で表明するのはC++がconstで失敗した道だからなぁ
numberにreadonlyを指定することは意味がないと思うが…
引数がreadonlyであることを表明したいなら
そういうinterfaceを定義すれば済む。現行機能で十分じゃないか?
指定子で表明するのはC++がconstで失敗した道だからなぁ
154デフォルトの名無しさん
2015/12/25(金) 17:02:40.14ID:zNppH846 >>153
あー無意味なこと書いてしまった…numberじゃなくて何らかのクラス名だった
ちなみに
function test(readonly v: Data/*参照しかしない事を表明*/): boolean { }
をしたいだけなのに
function test(v: {readonly x: number, ...全部書くのか?): boolean { }
とすればいいという事か?
あー無意味なこと書いてしまった…numberじゃなくて何らかのクラス名だった
ちなみに
function test(readonly v: Data/*参照しかしない事を表明*/): boolean { }
をしたいだけなのに
function test(v: {readonly x: number, ...全部書くのか?): boolean { }
とすればいいという事か?
155デフォルトの名無しさん
2015/12/25(金) 17:36:17.11ID:9XEpf0Yk >>154
「特定のメンバーしか見ない」と表明したいならそうなるんだろうね
もしくは最初からインタフェースを分けておくか
interface ReadOnlyData { get; }
interface Data extends ReadOnlyData { set; }
単純なフィールドの読み書きだけならいいけど
getXXX() は readonly だよねとか
getXXX() の中でキャッシュ値が変化するけど実質的には readonly だよねとか
やりだすと、C++の悪夢がよみがえってしまう
「特定のメンバーしか見ない」と表明したいならそうなるんだろうね
もしくは最初からインタフェースを分けておくか
interface ReadOnlyData { get; }
interface Data extends ReadOnlyData { set; }
単純なフィールドの読み書きだけならいいけど
getXXX() は readonly だよねとか
getXXX() の中でキャッシュ値が変化するけど実質的には readonly だよねとか
やりだすと、C++の悪夢がよみがえってしまう
156デフォルトの名無しさん
2015/12/25(金) 18:43:03.80ID:zNppH846 >>155
そりゃ悪夢だろ
なんでクラス定義する側がそんな苦労しないといけないんだ
ちなみに
class Hoge {
int getXXX() const;
mutable Cache cache;って知ってるか?
こうしておけば何か気にする事なんてあるか?
そりゃ悪夢だろ
なんでクラス定義する側がそんな苦労しないといけないんだ
ちなみに
class Hoge {
int getXXX() const;
mutable Cache cache;って知ってるか?
こうしておけば何か気にする事なんてあるか?
157デフォルトの名無しさん
2015/12/25(金) 18:47:18.76ID:zNppH846 補足
class Hoge {
int getXXX() const; ← これはcacheの中身は書き換える
mutable Cache cache; ← これが書き換わってもconst性に影響無いと考える
class Hoge {
int getXXX() const; ← これはcacheの中身は書き換える
mutable Cache cache; ← これが書き換わってもconst性に影響無いと考える
158デフォルトの名無しさん
2015/12/25(金) 23:14:17.73ID:b7pvx0AF159デフォルトの名無しさん
2015/12/25(金) 23:40:33.36ID:DXbDvcZw >>151
利用する側に重要な情報だよな。
利用する側に重要な情報だよな。
160デフォルトの名無しさん
2015/12/26(土) 00:31:22.25ID:iwceh6a5 C++でconstに問題あるなんて素人のたわごとだろ
聞いたこと無い
聞いたこと無い
161デフォルトの名無しさん
2015/12/26(土) 00:39:17.52ID:iwceh6a5 C++で仕事を15年以上して凄い奴とかどうしようもない奴とか色々見てきたけど
constに問題があるとか初めて聞いたよ
constに問題があるとか初めて聞いたよ
162デフォルトの名無しさん
2015/12/29(火) 02:41:33.95ID:cehhvXHA163デフォルトの名無しさん
2015/12/29(火) 02:55:10.34ID:cehhvXHA 最近やっとNode.jsとブラウザの両方で使えるコードの書き方が分かったよ
TypeScriptオンリーだったらtsc --module amdとrequire.jsがあればいいし
JavaScriptを使う場合はwebpack使えば出来た
俺はTypeScriptの時でもリリース時にwebpack使って開発中はrequire.jsで
個別にファイルを読み込んだほうがデバッグしやすいからそうしてる
ちなみに///<reference path='hoge.ts'/>とかmoduleやnamespaceは全く使わない
それが今のトレンド (VSCodeのソースがそうしてる)
TypeScriptオンリーだったらtsc --module amdとrequire.jsがあればいいし
JavaScriptを使う場合はwebpack使えば出来た
俺はTypeScriptの時でもリリース時にwebpack使って開発中はrequire.jsで
個別にファイルを読み込んだほうがデバッグしやすいからそうしてる
ちなみに///<reference path='hoge.ts'/>とかmoduleやnamespaceは全く使わない
それが今のトレンド (VSCodeのソースがそうしてる)
164デフォルトの名無しさん
2015/12/29(火) 16:10:58.92ID:O/+FVQhq そりゃそうだ
165デフォルトの名無しさん
2016/01/03(日) 18:07:55.32ID:CSCP9BIo だれかわかるやつ教えてくれ...
親クラスのstaticメソッドを子クラスでoverrideすると、
実行していない状態でもなぜか親クラスのstaticメソッドが実行されてしまうんだが、これはなぜなんだ...
一応ソースだけ張ってみる。
/// <reference path=
親クラスのstaticメソッドを子クラスでoverrideすると、
実行していない状態でもなぜか親クラスのstaticメソッドが実行されてしまうんだが、これはなぜなんだ...
一応ソースだけ張ってみる。
/// <reference path=
166デフォルトの名無しさん
2016/01/03(日) 18:14:12.59ID:CSCP9BIo167デフォルトの名無しさん
2016/01/03(日) 23:49:46.81ID:4W+1xUXu168デフォルトの名無しさん
2016/01/04(月) 00:03:32.03ID:tFJ0VkMO >>167
おお、ありがたい。
明日ちょっと見てみるわ。
どうもextendsするときに実行しちゃっているみたいだから、そういう仕様なの?とも思ったんだがいまいちわからんくて...
コンパイル結果のjsも明日張ってみるわ
今日はもう寝る
おお、ありがたい。
明日ちょっと見てみるわ。
どうもextendsするときに実行しちゃっているみたいだから、そういう仕様なの?とも思ったんだがいまいちわからんくて...
コンパイル結果のjsも明日張ってみるわ
今日はもう寝る
169デフォルトの名無しさん
2016/01/04(月) 09:26:22.97ID:B4Y3MO4F >>168
console.log(Asian.name);
console.log(Asian.name = "New type");
console.log(Asian.name);
nodeだとname propertyは再定義できないと言われるが
console.log(Asian.name);
console.log(Asian.name = "New type");
console.log(Asian.name);
nodeだとname propertyは再定義できないと言われるが
170デフォルトの名無しさん
2016/01/04(月) 12:16:27.68ID:WW+fICsN >>166
これはおもろいw
--target ES5のクラス継承は__extendsでいわゆるクラスを模したイディオムを
実行する訳だけど、その時にHuman.nameを読み出してるからその中で
console.log()みたいな副作用のあるコードを書いてるとちょろっとお漏らし
しちゃうんだな
ま、getに副作用のあるコードを書くなって事だな
副作用が無ければ気にする事はない
これはおもろいw
--target ES5のクラス継承は__extendsでいわゆるクラスを模したイディオムを
実行する訳だけど、その時にHuman.nameを読み出してるからその中で
console.log()みたいな副作用のあるコードを書いてるとちょろっとお漏らし
しちゃうんだな
ま、getに副作用のあるコードを書くなって事だな
副作用が無ければ気にする事はない
171デフォルトの名無しさん
2016/01/04(月) 21:24:41.15ID:tFJ0VkMO これが生成されたJS
改行多すぎで書き込めないから二つに区切る。
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Human = (function () {
function Human() {
}
Object.defineProperty(Human, "name", {
get: function () {
console.log("Human class name");
return "homo";
},
enumerable: true,
configurable: true
});
return Human;
})();
改行多すぎで書き込めないから二つに区切る。
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Human = (function () {
function Human() {
}
Object.defineProperty(Human, "name", {
get: function () {
console.log("Human class name");
return "homo";
},
enumerable: true,
configurable: true
});
return Human;
})();
172デフォルトの名無しさん
2016/01/04(月) 21:25:29.78ID:tFJ0VkMO var Asian = (function (_super) {
__extends(Asian, _super);
function Asian() {
_super.call(this);
}
Object.defineProperty(Asian, "name", {
get: function () {
console.log("Asian class name");
return "ass";
},
enumerable: true,
configurable: true
});
return Asian;
})(Human);
console.log(Asian.name);
2行目でpが"name"のときに、d[p] = b[p]としてる部分で起きてるっぽい? get の functionを代入しているような気がするんだけどダメなんだなぁ
__extends(Asian, _super);
function Asian() {
_super.call(this);
}
Object.defineProperty(Asian, "name", {
get: function () {
console.log("Asian class name");
return "ass";
},
enumerable: true,
configurable: true
});
return Asian;
})(Human);
console.log(Asian.name);
2行目でpが"name"のときに、d[p] = b[p]としてる部分で起きてるっぽい? get の functionを代入しているような気がするんだけどダメなんだなぁ
173デフォルトの名無しさん
2016/01/04(月) 21:27:50.70ID:tFJ0VkMO >>170
なるほど、やっぱり一応「仕様」なのね。
http://visible-true.blogspot.jp/2013/01/typescript-bridge-pattern.html
ここを参考に抽象クラス書いてみようとしたら毎回エラーになったのがきっかけで気づいたんだ。
普段は副作用のないコードを書くようにしてるから問題ないけど、気持ち悪いな...
なるほど、やっぱり一応「仕様」なのね。
http://visible-true.blogspot.jp/2013/01/typescript-bridge-pattern.html
ここを参考に抽象クラス書いてみようとしたら毎回エラーになったのがきっかけで気づいたんだ。
普段は副作用のないコードを書くようにしてるから問題ないけど、気持ち悪いな...
174デフォルトの名無しさん
2016/01/04(月) 21:29:44.16ID:jSUxRRs2 console.log(Asian.name);
をもう一度実行
をもう一度実行
175デフォルトの名無しさん
2016/01/04(月) 21:58:10.67ID:tFJ0VkMO >>174
最後のconsole.log(Asian.name); をふたつにするってこと?
↓こうなるだけだけど...そうじゃなくて?
Human class name
Asian class name
ass
Asian class name
ass
最後のconsole.log(Asian.name); をふたつにするってこと?
↓こうなるだけだけど...そうじゃなくて?
Human class name
Asian class name
ass
Asian class name
ass
176デフォルトの名無しさん
2016/01/04(月) 22:06:12.44ID:tFJ0VkMO >>172
うぉお自己レスだがいまさら理解
definePropertyにアクセスするとgetのfunctionが実行されるから、
extendsのときの代入で実行が走ってるのね
超すっきりしたわ
なるほどね
うぉお自己レスだがいまさら理解
definePropertyにアクセスするとgetのfunctionが実行されるから、
extendsのときの代入で実行が走ってるのね
超すっきりしたわ
なるほどね
177デフォルトの名無しさん
2016/01/04(月) 22:18:27.58ID:tFJ0VkMO いやまてこれダメじゃねーか
getterちゃんと継承できてねーぞ
...できてねーよな?
getterちゃんと継承できてねーぞ
...できてねーよな?
178デフォルトの名無しさん
2016/01/05(火) 00:16:07.40ID:JRpiyNmr 上書きしなきゃ親のが呼び出されるでしょ
179デフォルトの名無しさん
2016/01/05(火) 04:38:20.48ID:uTMnp3Vg https://github.com/Microsoft/TypeScript/issues/1520
存在しないユースケースだから修正しない。
使いたければ__extends関数を自作してオーバーライドしろとさ。
存在しないユースケースだから修正しない。
使いたければ__extends関数を自作してオーバーライドしろとさ。
180デフォルトの名無しさん
2016/01/05(火) 13:11:51.67ID:FYDa5kHc >>178
継承されてないな
まず最初に言っておくけどAsian内のgetを消すとAsian.nameは
Function.nameにアクセスする事になってAsianと表示されるからfuncとかにしておく
そうするとhomoとだけ表示されてHuman class nameは表示されないから継承されてない
ちなみに--target ES6の場合はconsole.log('Human class name');が実行されて
なおかつ継承もされない
要するに現状でES6と同じ挙動という事になるから自前の__extendsを作ると
将来ES6でコンパイルした時に困る事になる (継承をカスタマイズ出来ないし)
現状で問題の無いコードを書くしかないというのが結論だな
継承されてないな
まず最初に言っておくけどAsian内のgetを消すとAsian.nameは
Function.nameにアクセスする事になってAsianと表示されるからfuncとかにしておく
そうするとhomoとだけ表示されてHuman class nameは表示されないから継承されてない
ちなみに--target ES6の場合はconsole.log('Human class name');が実行されて
なおかつ継承もされない
要するに現状でES6と同じ挙動という事になるから自前の__extendsを作ると
将来ES6でコンパイルした時に困る事になる (継承をカスタマイズ出来ないし)
現状で問題の無いコードを書くしかないというのが結論だな
181デフォルトの名無しさん
2016/01/05(火) 13:24:39.62ID:FYDa5kHc ES6のclassは__extendsでやっている事のシンタックスシュガーだってのが
分かるおもしろい例だった
結局ES6になってもプロトタイプベースのオブジェクト指向っていうところは
変わってないんだよね
分かるおもしろい例だった
結局ES6になってもプロトタイプベースのオブジェクト指向っていうところは
変わってないんだよね
182デフォルトの名無しさん
2016/01/06(水) 08:53:19.05ID:Fwd934PG >>179
神だ、やっと神と、、、!
ありがとう!
ユースケースがないってのはちょっとひっかかるけどな。
キーワードstaticってクラスに属してるだけでstatic getが副作用を起こさない、他の影響をうけないって保証されてるわけじゃないし。
そう書けってことではあるんだけどね。
神だ、やっと神と、、、!
ありがとう!
ユースケースがないってのはちょっとひっかかるけどな。
キーワードstaticってクラスに属してるだけでstatic getが副作用を起こさない、他の影響をうけないって保証されてるわけじゃないし。
そう書けってことではあるんだけどね。
183デフォルトの名無しさん
2016/01/18(月) 13:03:11.26ID:ELUPuNqk MSYS上のvimからtsuquyomi使えんかった
多分Nodeがマウントされたパスとか/c/から始まるパスを理解できないんだろうな
MSYS版Nodeがあればなぁ
多分Nodeがマウントされたパスとか/c/から始まるパスを理解できないんだろうな
MSYS版Nodeがあればなぁ
184デフォルトの名無しさん
2016/01/18(月) 17:46:53.97ID:ELUPuNqk よく見たらmingw側にNodeがあったので試してみたけどバージョンが古いせいか駄目だったぜ
TypeScript書くときは大人しくGVimにしておくか
TypeScript書くときは大人しくGVimにしておくか
185デフォルトの名無しさん
2016/01/22(金) 13:05:16.12ID:yW17RJ8f ChakraCoreを使ったNode.jsが動いたらしい
しかし最近のMSはプロジェクト名にCoreを付けまくってるな
しかし最近のMSはプロジェクト名にCoreを付けまくってるな
186デフォルトの名無しさん
2016/01/23(土) 10:08:20.25ID:ym0h+5An --module commonjsの状態でmoduleとnamespaceを使わずに
export function ...
export var ...
って書いたソースがcommonjsのモジュールとしてコンパイルできるのに
外部からimportしようとするとモジュールが見つからないって怒られて困った
--module amdだと大丈夫みたいなんだけど、バグだったりするの?
export function ...
export var ...
って書いたソースがcommonjsのモジュールとしてコンパイルできるのに
外部からimportしようとするとモジュールが見つからないって怒られて困った
--module amdだと大丈夫みたいなんだけど、バグだったりするの?
187デフォルトの名無しさん
2016/01/23(土) 12:35:34.21ID:xXuhphCo 公式のwiki読め
188デフォルトの名無しさん
2016/01/23(土) 17:32:00.25ID:ym0h+5An import時のパスが./で始まるかどうかの違いでした
import * as test from "test"; // amdはOK, commonjsはエラー
import * as test from "./test"; // amd, commonjs 共にOK
test.tsを./node_modulesに突っ込んで--moduleResolution nodeなら前者もOK
import * as test from "test"; // amdはOK, commonjsはエラー
import * as test from "./test"; // amd, commonjs 共にOK
test.tsを./node_modulesに突っ込んで--moduleResolution nodeなら前者もOK
189デフォルトの名無しさん
2016/01/24(日) 10:30:33.12ID:jiNDRvMm190デフォルトの名無しさん
2016/01/25(月) 13:40:35.40ID:ipEE3CyC TypeScriptのモジュールの扱いが激烈に難解になったからみんなハマルだろうな
俺は大体理解できたけど
俺は大体理解できたけど
191デフォルトの名無しさん
2016/01/25(月) 13:50:19.91ID:FKcC8XYP 苦笑
192デフォルトの名無しさん
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 が導入されればマシになるとは思う。
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ってフォルダのハードリンク作れたっけ?
356デフォルトの名無しさん
2016/05/14(土) 11:35:56.64ID:r8zKr16p そもそも別物なのに同じ挙動をすると期待するのが間違い
357デフォルトの名無しさん
2016/05/14(土) 11:46:02.57ID:fLeelvLJ XPでもジャンクション使えたけど
MSの態度が曖昧でどうしたいのかわからなかった
Vista でこの辺のファイルリンクとか代替ストリームとか正式サポートされた
MSの態度が曖昧でどうしたいのかわからなかった
Vista でこの辺のファイルリンクとか代替ストリームとか正式サポートされた
358デフォルトの名無しさん
2016/05/16(月) 19:25:09.47ID:xXNLqPYG >>355
XPの時はフォルダのハードリンクは作れたよ。今は知らん
Linuxはフォルダ(ディレクトリ)のハードリンクはroot権限が必要になるな
OS問わずにフォルダのハードリンクは危険ってことだ
XPはシンボリックリンクが無くてハードリンクのみだから罠に嵌められた
Vista以降はシンボリックリンクが使えるからそっちは特に問題はないはず
XPの時はフォルダのハードリンクは作れたよ。今は知らん
Linuxはフォルダ(ディレクトリ)のハードリンクはroot権限が必要になるな
OS問わずにフォルダのハードリンクは危険ってことだ
XPはシンボリックリンクが無くてハードリンクのみだから罠に嵌められた
Vista以降はシンボリックリンクが使えるからそっちは特に問題はないはず
359デフォルトの名無しさん
2016/05/16(月) 21:06:35.83ID:0jMm0VW7 XPの時はフォルダのハードリンクは作れん。XP現役で使っている。
異なるドライブでも可能なジャンクションならできる。
異なるドライブでも可能なジャンクションならできる。
360デフォルトの名無しさん
2016/05/17(火) 11:18:29.53ID:NWTAtPGB >>359
もれも 358 はパーティションをフォルダにリンクする話と間違ってるなーと思ってみてた
もれも 358 はパーティションをフォルダにリンクする話と間違ってるなーと思ってみてた
361デフォルトの名無しさん
2016/05/17(火) 11:19:25.01ID:NWTAtPGB リンクっつーよりマウントだな
362デフォルトの名無しさん
2016/05/17(火) 13:37:15.22ID:vW2/638O 358だけど何らかのコマンドでリンクを作成したのは間違いないが
調べてみるとlinkd.exeの可能性が高い
要するにジャンクションって事か?
なにぶんXP使ってたのはかなり昔の事なんで記憶が曖昧だったよ
調べてみるとlinkd.exeの可能性が高い
要するにジャンクションって事か?
なにぶんXP使ってたのはかなり昔の事なんで記憶が曖昧だったよ
363デフォルトの名無しさん
2016/05/17(火) 13:54:39.38ID:awF8sDTJ Linuxでもディレクトリのハードリンクはできなかったはず。
http://unix.stackexchange.com/questions/22394/why-are-hard-links-to-directories-not-allowed-in-unix-linux
>>358 のroot権限うんぬんは、Solaris限定かもしれない。
Windowsでも記事がある。今ならmklinkだけでいい。昔はfsutilなりlinkdなりもあった。
http://www.atmarkit.co.jp/ait/articles/1306/07/news111.html
フォルダのハードリンクはできないから >>353 も用語違い。
まぁ、ジャンクション+ごみ箱が多くの不幸な事故を生み出したのはその通りだが。
http://unix.stackexchange.com/questions/22394/why-are-hard-links-to-directories-not-allowed-in-unix-linux
>>358 のroot権限うんぬんは、Solaris限定かもしれない。
Windowsでも記事がある。今ならmklinkだけでいい。昔はfsutilなりlinkdなりもあった。
http://www.atmarkit.co.jp/ait/articles/1306/07/news111.html
フォルダのハードリンクはできないから >>353 も用語違い。
まぁ、ジャンクション+ごみ箱が多くの不幸な事故を生み出したのはその通りだが。
364デフォルトの名無しさん
2016/05/17(火) 14:37:13.73ID:74/nDTTZ そんな事より元々の質問の答えは無いの?
俺も知りたい。共通ライブラリ化出来ないと不便だよな。
俺も知りたい。共通ライブラリ化出来ないと不便だよな。
365デフォルトの名無しさん
2016/05/17(火) 15:17:02.05ID:awF8sDTJ366デフォルトの名無しさん
2016/05/31(火) 14:00:10.58ID:DKR1hPoU windows10でtypescriptやるには何をインストールすればいいのさ?
367デフォルトの名無しさん
2016/05/31(火) 14:31:56.32ID:xl+n8Rkn 知らないものを始めたいときは、とりあえず「○○ 入門」でぐぐれ
368デフォルトの名無しさん
2016/06/01(水) 22:34:33.37ID:tjGnKxey ms謹製なので、msのツールが使えそう
369デフォルトの名無しさん
2016/06/04(土) 18:08:24.21ID:3F7VjM1T VSで作っているけど
#region
#endregion
的な物ない?
#region
#endregion
的な物ない?
370デフォルトの名無しさん
2016/06/04(土) 19:51:23.66ID:BRPGaK18 >>369
無い
無い
371デフォルトの名無しさん
2016/06/04(土) 21:45:06.08ID:dGWHMJs+ >>370
ありがとうございます!
ありがとうございます!
373デフォルトの名無しさん
2016/06/04(土) 22:49:50.74ID:3F7VjM1T374デフォルトの名無しさん
2016/06/04(土) 23:36:31.88ID:o/6G/bzU >>369
Proposal: Preprocessor Directives
https://github.com/Microsoft/TypeScript/issues/4691
プリプロセスの提案はあるよ
でもこれに限らず、C#にある仕様だからといって優先的に取り組む感じはしないかな
節度を持ってJS文化に適合させていきたいのかもね
Proposal: Preprocessor Directives
https://github.com/Microsoft/TypeScript/issues/4691
プリプロセスの提案はあるよ
でもこれに限らず、C#にある仕様だからといって優先的に取り組む感じはしないかな
節度を持ってJS文化に適合させていきたいのかもね
375デフォルトの名無しさん
2016/06/04(土) 23:55:44.04ID:Ly/Eq9zA プリプロセスなんてコンパイラだからこその機能なのにTypeScriptの設計者は
若干偏屈なところがあるよな
abstractは導入しといてvirtual,overrideがいらねーとか意味が分からん
若干偏屈なところがあるよな
abstractは導入しといてvirtual,overrideがいらねーとか意味が分からん
376デフォルトの名無しさん
2016/06/05(日) 18:43:32.96ID:sRhznVmp 色々入れすぎるとまたアンチM$(笑)から叩かれそう
377デフォルトの名無しさん
2016/06/10(金) 22:29:38.27ID:L2JcFKfv >>375
overrideは入りうるよ
一度は断ったけど、最近になって再検討して受け入れることにしたようだ
Support override keyword on class methods
https://github.com/Microsoft/TypeScript/issues/2000
overrideは入りうるよ
一度は断ったけど、最近になって再検討して受け入れることにしたようだ
Support override keyword on class methods
https://github.com/Microsoft/TypeScript/issues/2000
378デフォルトの名無しさん
2016/06/10(金) 22:52:16.31ID:E+nifBZa >>377
お、375じゃないけど超うれしい
お、375じゃないけど超うれしい
379デフォルトの名無しさん
2016/06/16(木) 19:04:16.91ID:PJUBR4L+ The Future of Declaration Files
https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
関連
npmでTypeScriptの型定義を管理できるtypesパッケージについて
http://qiita.com/laco0416/items/ed1aadf335f12cd3618d
https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
関連
npmでTypeScriptの型定義を管理できるtypesパッケージについて
http://qiita.com/laco0416/items/ed1aadf335f12cd3618d
380デフォルトの名無しさん
2016/07/15(金) 00:06:52.35ID:3lt2T5b1 Announcing TypeScript 2.0 Beta
https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta/
TypeScript 2.0 Beta 変更点
http://qiita.com/vvakame/items/ae239f3d6f6f08f7c719
https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta/
TypeScript 2.0 Beta 変更点
http://qiita.com/vvakame/items/ae239f3d6f6f08f7c719
381デフォルトの名無しさん
2016/07/15(金) 00:10:10.35ID:3lt2T5b1 15K行のアプリをTypeScript1.8から2.0に移行してみた
http://rhysd.hatenablog.com/entry/2016/07/15/090000
http://rhysd.hatenablog.com/entry/2016/07/15/090000
382デフォルトの名無しさん
2016/07/17(日) 11:23:12.55ID:cN3YyD0v ES3対応ってまだいるの?
383デフォルトの名無しさん
2016/07/18(月) 16:13:28.10ID:jfk77b+M https://github.com/showcases/programming-languages
TypeScript ★13,201
CoffeeScript ★13,152
遂にGithubスター数がCoffeeScriptを超えた
TypeScript ★13,201
CoffeeScript ★13,152
遂にGithubスター数がCoffeeScriptを超えた
384デフォルトの名無しさん
2016/07/19(火) 12:58:14.30ID:HIwcb2q8 比べる事に意味があるとは思えんがな…
CoffeeScriptはAltJSでTypeScriptはBetterJSだ
JavaScriptが嫌いな人はCoffeeScriptを使えばいいんだ
CoffeeScriptはAltJSでTypeScriptはBetterJSだ
JavaScriptが嫌いな人はCoffeeScriptを使えばいいんだ
385デフォルトの名無しさん
2016/07/24(日) 15:50:35.09ID:5+wwO3kQ Intellij IDEAでTS開発捗りすぎワロリンヌ
386デフォルトの名無しさん
2016/07/26(火) 06:50:53.34ID:HN1KCMsQ JavaScriptとTypeScriptの関係は
C言語とJavaの関係に似ている様な気がする
C言語とJavaの関係に似ている様な気がする
387デフォルトの名無しさん
2016/07/26(火) 07:58:39.74ID:l+RwS+H8 >>386
だから何よ?
だから何よ?
388デフォルトの名無しさん
2016/07/26(火) 15:46:52.18ID:iOw6CH/m プロトタイプベースは人類には早すぎたんだ
クラスベースでないと万人には理解できない
クラスベースでないと万人には理解できない
389デフォルトの名無しさん
2016/07/26(火) 16:29:48.15ID:GAZIoYVE プロトタイプベースは既存のインスタンスから継承できる先進的な機能ではあるが
そもそも他の言語では隠されてる継承の仕組みがむき出しになってるだけなんで
無理に使う必要もない
クラスを作るイディオムとか普通にclassを使えばいいんだ
そもそも他の言語では隠されてる継承の仕組みがむき出しになってるだけなんで
無理に使う必要もない
クラスを作るイディオムとか普通にclassを使えばいいんだ
390デフォルトの名無しさん
2016/07/27(水) 06:57:54.53ID:Pn9H7j+u >>387
歴史は繰り返す
歴史は繰り返す
391デフォルトの名無しさん
2016/07/27(水) 13:58:29.20ID:lrmpmMbD WebAssemblyは当面C++のゲーム用だけどDOMもいじれるようになる予定だから
そうなるとまたWeb用言語の勢力図は変わるかもしれないな
Webの世界に安定は無い
そうなるとまたWeb用言語の勢力図は変わるかもしれないな
Webの世界に安定は無い
392デフォルトの名無しさん
2016/07/27(水) 14:22:46.06ID:5Q3W/uen デバッガが当分クソそうだけどWebKitはそのうち充実させて生JS殺しにきそう
393デフォルトの名無しさん
2016/07/27(水) 23:47:21.54ID:Bmh+9kmU394デフォルトの名無しさん
2016/07/28(木) 06:25:04.12ID:jPXeBRxR FunScriptでもやるか
395デフォルトの名無しさん
2016/07/28(木) 19:15:17.96ID:O8Vfrh0P >>393
LLVMじゃね
LLVMじゃね
396デフォルトの名無しさん
2016/07/29(金) 10:57:47.10ID:eqy9GKk1 2.0のstrictNullChecksへの対応は結構キツイなぁ
「フィールドAがあれば、フィールドBも必ずある」ような暗黙ルールを咎められる
「変数?」が「型 | undefined」の扱いになるから
無効な値にはnullを使わずundefinedで統一したほうが良さそうだ
構文としては、返値、ローカル変数、末尾以外の引数にundefinedを許したい場合
いちいち「| undefined」が必要になる。Swiftのように ? は型の側が良い気がするんだが
「フィールドAがあれば、フィールドBも必ずある」ような暗黙ルールを咎められる
「変数?」が「型 | undefined」の扱いになるから
無効な値にはnullを使わずundefinedで統一したほうが良さそうだ
構文としては、返値、ローカル変数、末尾以外の引数にundefinedを許したい場合
いちいち「| undefined」が必要になる。Swiftのように ? は型の側が良い気がするんだが
397デフォルトの名無しさん
2016/07/29(金) 14:56:44.05ID:LtIoC4Yb undefinedはプロパティそのものが存在しないことを表すんだからプロパティ側に?付けるのは自然でしょ
2.0は個人的にはかなり好きだな
最近の新言語といえばWeb系のノリで適当に作られてるのが多い中、これほど思想が明確で一貫した言語は珍しい
2.0は個人的にはかなり好きだな
最近の新言語といえばWeb系のノリで適当に作られてるのが多い中、これほど思想が明確で一貫した言語は珍しい
398デフォルトの名無しさん
2016/07/29(金) 16:06:58.19ID:eqy9GKk1 「存在しない」と「undefinedを保持している」の2つの意味があるからなぁ
前者ならプロパティの属性、後者なら型の属性に解釈できるように感じる
strictNullChecksは簡単には対応できなかったが
noImplicitThis, noUnusedLocals, noUnusedParameters は
影響が少ないわりにバグを拾ってくれてありがたかった
前者ならプロパティの属性、後者なら型の属性に解釈できるように感じる
strictNullChecksは簡単には対応できなかったが
noImplicitThis, noUnusedLocals, noUnusedParameters は
影響が少ないわりにバグを拾ってくれてありがたかった
399デフォルトの名無しさん
2016/07/29(金) 23:41:16.66ID:rRyJkXWQ >>398
JavaScriptはundefineって言われても本当にundefinedなのか意図的に設定したundefinedか判別不能だから
nullとundefinedを区別する意味があるけど、TypeScriptの場合は「存在しない」なんて有り得ないからnullは要らない子だし
undefinedの場合は意図的に設定したと分かる
JavaScriptはundefineって言われても本当にundefinedなのか意図的に設定したundefinedか判別不能だから
nullとundefinedを区別する意味があるけど、TypeScriptの場合は「存在しない」なんて有り得ないからnullは要らない子だし
undefinedの場合は意図的に設定したと分かる
400デフォルトの名無しさん
2016/07/30(土) 00:18:48.03ID:tmproLvF ノードの有無のチェックは存在を確認するし番兵は一般的にnullを使う
前者はプロパティで後者は型だろう
前者はプロパティで後者は型だろう
401デフォルトの名無しさん
2016/07/30(土) 08:46:23.50ID:d/v3ZRhl F#「あなたはヌルチェックでどれほど人生を無駄使いしているかを知るべきである」
402デフォルトの名無しさん
2016/07/30(土) 13:20:14.13ID:NnN7Vre0 ===を使えば全部解決
403デフォルトの名無しさん
2016/07/30(土) 23:28:44.49ID:r21OKS05 "型?" については "| null"、"| undefined"、その両方の
どれにすべきかで議論がまとまらなかったみたいだ
しばらくは採用されないだろう
https://github.com/Microsoft/TypeScript/issues/7426
https://github.com/Microsoft/TypeScript/issues/7488
どれにすべきかで議論がまとまらなかったみたいだ
しばらくは採用されないだろう
https://github.com/Microsoft/TypeScript/issues/7426
https://github.com/Microsoft/TypeScript/issues/7488
404デフォルトの名無しさん
2016/08/01(月) 14:04:09.45ID:FziUxCeM >>400
DOMとかWebGLとか普通にnullを返すからどうしてもnullを使わないといけない場面は出てくる
けど、TypeScriptだけの処理の場合はnullを使う意味は全く無いな
本家のコーディングスタイルにもnullじゃなくundefinedを使えと書いてある
DOMとかWebGLとか普通にnullを返すからどうしてもnullを使わないといけない場面は出てくる
けど、TypeScriptだけの処理の場合はnullを使う意味は全く無いな
本家のコーディングスタイルにもnullじゃなくundefinedを使えと書いてある
405デフォルトの名無しさん
2016/08/01(月) 18:46:01.78ID:2iI0/+FF JavaScriptの根幹にある設計ミスだからな
トランスパイラの層ではその尻を拭うのも難しかろう
トランスパイラの層ではその尻を拭うのも難しかろう
406デフォルトの名無しさん
2016/08/01(月) 19:32:59.87ID:RWxbqWQ0 >>404
知ってるけど命令型アルゴリズムを書くときにわざわざnullをundefinedに置換するほどのメリットもない
教科書通りnull使ったほうが思考のオーバーヘッドがなくて楽
どちらでもいい時はundefinedに寄せる
知ってるけど命令型アルゴリズムを書くときにわざわざnullをundefinedに置換するほどのメリットもない
教科書通りnull使ったほうが思考のオーバーヘッドがなくて楽
どちらでもいい時はundefinedに寄せる
407デフォルトの名無しさん
2016/08/01(月) 22:13:22.57ID:cFMFBdlm Suggestion: Extension methods
https://github.com/Microsoft/TypeScript/issues/9
初期から提案のあった拡張メソッドだが、不採用が決まった
https://github.com/Microsoft/TypeScript/issues/9
初期から提案のあった拡張メソッドだが、不採用が決まった
408デフォルトの名無しさん
2016/08/02(火) 00:27:46.69ID:EfYzXtbg 型の有無で動作が変わるのはTypeScriptの設計思想からして不適切
409デフォルトの名無しさん
2016/08/02(火) 12:10:13.85ID:rXn2IC8I クラス定義には含まれないプロパティをインスタンスが持てる言語で
そもそも拡張メソッドが成り立つものなのかね?
Java interfaceのdefaultメソッドのほうがまだ芽がある気がするが
そもそも拡張メソッドが成り立つものなのかね?
Java interfaceのdefaultメソッドのほうがまだ芽がある気がするが
410デフォルトの名無しさん
2016/08/02(火) 17:21:45.08ID:04yi8jv3411デフォルトの名無しさん
2016/08/02(火) 18:37:46.13ID:+e4iDA+F >>410
アルゴリズムの本じゃね?
アルゴリズムの本じゃね?
412デフォルトの名無しさん
2016/08/03(水) 00:12:57.56ID:jr+ageRA nullかどうか判定するのに
hoge === null
とかやってないよな?
!hoge
で統一すればundefinedのみで何の問題も無い
hoge === null
とかやってないよな?
!hoge
で統一すればundefinedのみで何の問題も無い
413デフォルトの名無しさん
2016/08/03(水) 01:16:56.62ID:Ot1v5VqO これはひどい釣り
414デフォルトの名無しさん
2016/08/03(水) 08:01:27.31ID:8fjgpLNn 数値と文字が渡されないケースなら ! でも良い
渡されるなら == null (2個) を使う
TSLintの設定で、比較で null を使うのは許して、値としては許さないのが欲しいな
渡されるなら == null (2個) を使う
TSLintの設定で、比較で null を使うのは許して、値としては許さないのが欲しいな
415デフォルトの名無しさん
2016/08/03(水) 12:08:49.21ID:mbys/AN5 null汚染
416デフォルトの名無しさん
2016/08/03(水) 14:40:42.74ID:3251V7HB >>413
お前がど素人なのはわかったよw
お前がど素人なのはわかったよw
417デフォルトの名無しさん
2016/08/03(水) 17:20:15.41ID:3251V7HB >>413,414とかってnumberな変数にnullとか代入しちゃってんだろうな…
そりゃstrictNullChecksで困るわけだ
そりゃstrictNullChecksで困るわけだ
418デフォルトの名無しさん
2016/08/03(水) 21:04:30.24ID:Ot1v5VqO 入れるわけねーだろバカ
419デフォルトの名無しさん
2016/08/03(水) 22:55:31.78ID:Ve2x0gaK 皆さん結局nullとundefinedを区別しているの?どんなコードを書いているの?
420デフォルトの名無しさん
2016/08/03(水) 23:55:39.77ID:8fjgpLNn 一つの変数で区別する用途を無理やり考えるならば
・undefined: 初期化前
・null: 利用不可
・object: 利用可
なんて例があるかもしれない。普通はNullObjectで済ませるか
・undefined: 初期化前
・null: 利用不可
・object: 利用可
なんて例があるかもしれない。普通はNullObjectで済ませるか
421デフォルトの名無しさん
2016/08/04(木) 02:41:29.69ID:0QnTEdcF422デフォルトの名無しさん
2016/08/04(木) 09:59:24.73ID:aMt1KCpE strictNullChecksを気持ちよく使いたいなら構造から見直しになるな
{ x?, y? } // 必ずペアで使う
ではなく
{ pt?: { x, y } }
としないと ! を避けられない
{ x?, y? } // 必ずペアで使う
ではなく
{ pt?: { x, y } }
としないと ! を避けられない
423デフォルトの名無しさん
2016/08/08(月) 22:15:39.27ID:W4Hzna5O だれかtypeScriptでバリバリサーバサイドもやってるぜって人いる?
使い勝手を是非聞きたい
使い勝手を是非聞きたい
424デフォルトの名無しさん
2016/08/25(木) 22:38:44.02ID:yGHELMdE マクロのミスでconst enum同士で除算しちゃってて間違い探しをする羽目になったぜ
ありえない数値になってたのにコンパイラは叱ってくれなかったよ
ありえない数値になってたのにコンパイラは叱ってくれなかったよ
425デフォルトの名無しさん
2016/08/26(金) 07:44:50.99ID:LCNVy+4G >>424
enum同士の除算結果の型はnumberだから、コンパイラの解釈は妥当だぞ
「単位付き数値」があればエラーにできるケースもあるかもしれない
Nominal typesの一環で良い感じの機能が入らないものか
enum同士の除算結果の型はnumberだから、コンパイラの解釈は妥当だぞ
「単位付き数値」があればエラーにできるケースもあるかもしれない
Nominal typesの一環で良い感じの機能が入らないものか
426デフォルトの名無しさん
2016/08/26(金) 10:18:15.73ID:uxIG+t+y numberからconst enumへ暗黙的な変換が許されるのが問題だと思ったんよ
警告されれば先に気づくことができたから
警告されれば先に気づくことができたから
427デフォルトの名無しさん
2016/08/26(金) 15:52:13.72ID:mbeLOtT9 暗黙も何もenumの要素は最初からただのnumberだからな
JavaScriptとの互換性を考えれば妥当な仕様だろう
JavaScriptとの互換性を考えれば妥当な仕様だろう
428デフォルトの名無しさん
2016/08/26(金) 16:16:08.43ID:LCNVy+4G 他言語と比べると確かにチェックがガバガバだが
interfaceを明示的にimplementsしなくてもシグニチャだけを見ることと比べると
一貫性はあるとは思う。型システムがStructuralなことの弊害だろう
数値でなくても良いなら enum より String Literal Types を使うべきなんだろうな
interfaceを明示的にimplementsしなくてもシグニチャだけを見ることと比べると
一貫性はあるとは思う。型システムがStructuralなことの弊害だろう
数値でなくても良いなら enum より String Literal Types を使うべきなんだろうな
429デフォルトの名無しさん
2016/08/26(金) 16:48:05.33ID:mbeLOtT9 型システム自体はJavaScript側にあるんだ
TypeScriptがやってる事はJavaScriptのソースに書かれてる型を見えるようにしてるだけとも言える
そもそもJavaScriptが動的型なんだから無理やり静的型にしようとしても微妙なところは出てくるだろうな
TypeScriptがやってる事はJavaScriptのソースに書かれてる型を見えるようにしてるだけとも言える
そもそもJavaScriptが動的型なんだから無理やり静的型にしようとしても微妙なところは出てくるだろうな
430デフォルトの名無しさん
2016/09/01(木) 04:24:05.73ID:oFB7MvRf Announcing TypeScript 2.0 RC
https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/
>>380に追加
Number, enum, and boolean literal types
https://github.com/Microsoft/TypeScript/pull/9407
https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/
>>380に追加
Number, enum, and boolean literal types
https://github.com/Microsoft/TypeScript/pull/9407
431デフォルトの名無しさん
2016/09/02(金) 02:34:58.82ID:D4RF+Hn1 switch使うとダサくなるな
match withにして欲しい
match withにして欲しい
432デフォルトの名無しさん
2016/09/02(金) 15:48:27.54ID:LgVEFfHs 内部モジュールについて教えてください。
これを使う場合ってconcatで1ファイル化する場合ってことでいいんでしょうか
webpackをつかって1ファイル化する予定なんですがその場合は外部モジュールを使う認識であっていますか?
これを使う場合ってconcatで1ファイル化する場合ってことでいいんでしょうか
webpackをつかって1ファイル化する予定なんですがその場合は外部モジュールを使う認識であっていますか?
433デフォルトの名無しさん
2016/09/02(金) 17:23:11.44ID:dDo1g1S1 外部モジュールになるファイルは独立してるはず
今はnamespace推奨で内部モジュールって表現はあまり意味を成してない?
ので1ファイルにまとめたら名前空間で仕切られてるだけって考えでいいんじゃないか
今はnamespace推奨で内部モジュールって表現はあまり意味を成してない?
ので1ファイルにまとめたら名前空間で仕切られてるだけって考えでいいんじゃないか
434デフォルトの名無しさん
2016/09/03(土) 00:54:26.94ID:FrYijLTu 昔からある単なるmoduleはもうobsoleteですぐにnamespaceにリネームすべきだね
いわゆるモジュールはJavaScriptの世界を知らないと理解しがたいものになってるね
いわゆるモジュールはJavaScriptの世界を知らないと理解しがたいものになってるね
435デフォルトの名無しさん
2016/09/03(土) 00:56:21.93ID:FrYijLTu ES6のmuduleが普及すればかなりシンプルになるんだろうけど、まだブラウザがサポートしてない
436デフォルトの名無しさん
2016/09/09(金) 21:36:47.25ID:oMlYA35z letは再入不可にして欲しいなあ
437デフォルトの名無しさん
2016/09/09(金) 21:41:01.71ID:0o6Zl0oX constじゃあかんの?
438デフォルトの名無しさん
2016/09/10(土) 07:30:02.50ID:XD8JXdoT なんか名前が先祖帰りっぽくてなあ
439デフォルトの名無しさん
2016/09/11(日) 01:15:44.93ID:PWIs+lC0 >>436は「再入」不可と言ってんだが…
440デフォルトの名無しさん
2016/09/11(日) 01:38:43.42ID:m+TGnnw0 リエントラントを意識したことが無かったりすると
再入って言葉を再代入の変わりに使ってもいいじゃん?とか思ってしまうのだろう
再入って言葉を再代入の変わりに使ってもいいじゃん?とか思ってしまうのだろう
441デフォルトの名無しさん
2016/09/11(日) 08:21:20.09ID:o8qO+nVm 「リエントラントな変数」はナンセンスだから、ま、多少はね?
442デフォルトの名無しさん
2016/09/14(水) 09:26:01.83ID:tSXXNMuv tsってjsに変換して型情報捨てちゃってるけどバイナリにコンパイルとかサポートしないのかな
WebAssemblyにそのまま使えたら面白いことになりそう
WebAssemblyにそのまま使えたら面白いことになりそう
443デフォルトの名無しさん
2016/09/14(水) 09:52:25.62ID:EEwsGEAZ asm.jsは文法だけjsのサブセットで実行モデルは全然違うんでサポートしないっつうかできなかったはずだが、WebAssemblyも同じじゃないの?
444デフォルトの名無しさん
2016/09/14(水) 10:28:43.01ID:8JRyg+5x 折角の型情報を活かせるのが構文チェックだけで
高速化には寄与しないってのは勿体ないのは確かだな
高速化には寄与しないってのは勿体ないのは確かだな
445デフォルトの名無しさん
2016/09/14(水) 13:51:30.89ID:Adg+xGfe TypeScriptのビジョン的には、そういうのはESが新バージョンで型アノテーションを導入して
ブラウザによって最適化されるべきということなんじゃない?
ハックで実装するのはTypeScript的じゃないよ
ブラウザによって最適化されるべきということなんじゃない?
ハックで実装するのはTypeScript的じゃないよ
446デフォルトの名無しさん
2016/09/14(水) 14:43:49.29ID:UUl7aTux ES5と同じようにwasm用のサブセット作って段階的にサポートしていけば余裕しょ
447デフォルトの名無しさん
2016/09/14(水) 14:58:26.52ID:Adg+xGfe アセンブリレベルまでコンパイルしようと思えば現在JSに丸投げしてる部分をTSで独自に定義し直す必要があるから、
仕様はサブセットどころか無茶苦茶肥大化するよ
仕様はサブセットどころか無茶苦茶肥大化するよ
448デフォルトの名無しさん
2016/09/14(水) 15:06:48.85ID:eWqPmXTS どうせJavaやC#がWebAssemblyの出力に対応するだろうし、高速化を期待するならそっちを使うべきだな
449デフォルトの名無しさん
2016/09/14(水) 15:12:59.56ID:eWqPmXTS ただ、Webの世界はAPIが全てJavaScript用に定義されてる訳だから
DOMをいじるとかWeb関連のコードを書こうとしたらJavaScript使うのが一番楽だろう
で、TypeScriptを使えばエラーの少ないコードが書けるよってだけの存在だな
DOMをいじるとかWeb関連のコードを書こうとしたらJavaScript使うのが一番楽だろう
で、TypeScriptを使えばエラーの少ないコードが書けるよってだけの存在だな
450デフォルトの名無しさん
2016/09/21(水) 09:53:22.62ID:ye3OhaXn netbeansでtsファイルをコンパイルできますか?
451デフォルトの名無しさん
2016/09/23(金) 07:28:38.08ID:wUPl9fHa TypeScript 2.0 正式リリース
https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/
https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/
452デフォルトの名無しさん
2016/09/25(日) 21:22:23.16ID:rgw8PMte Visual Studio2015のTypeScript2.0で
if(1===2){
...
}
とすると、
エラー TS2365 演算子 '===' を型 '1' および '2' に適用することはできません。
になるのですが、1と2を比較すると何が悪いのでしょうか?
if(1===2){
...
}
とすると、
エラー TS2365 演算子 '===' を型 '1' および '2' に適用することはできません。
になるのですが、1と2を比較すると何が悪いのでしょうか?
453デフォルトの名無しさん
2016/09/25(日) 22:06:10.66ID:s0l/HB/m >>452
Tagged Union 由来のエラーのような気がする
ナンセンスなコードだけど、気になるようならエラーレポートしておいで
片方が変数なら問題ないから、普通にコードを書くうちは表面化しない
Tagged Union 由来のエラーのような気がする
ナンセンスなコードだけど、気になるようならエラーレポートしておいで
片方が変数なら問題ないから、普通にコードを書くうちは表面化しない
454デフォルトの名無しさん
2016/09/26(月) 03:17:54.07ID:Pt8k1v+W >>451
Revised 型の国のTypeScript
http://typescript.ninja/typescript-in-definitelyland/
>>430
TypeScript 2.0.3 変更点
http://qiita.com/vvakame/items/826bf193dd301862014f
Revised 型の国のTypeScript
http://typescript.ninja/typescript-in-definitelyland/
>>430
TypeScript 2.0.3 変更点
http://qiita.com/vvakame/items/826bf193dd301862014f
455デフォルトの名無しさん
2016/09/26(月) 12:48:28.20ID:KtFZyGzz 型の国新人研修マニュアルみたいで微妙だった
456デフォルトの名無しさん
2016/09/26(月) 14:39:12.43ID:ymOrEJcI 一瞬変な絵が出てブラクラかと思った
http://techbooster.github.io/c90/#typescript
http://techbooster.github.io/c90/#typescript
457デフォルトの名無しさん
2016/09/26(月) 23:44:06.70ID:9aeHOXYg >>452
これは興味深い挙動だな
確かにnumberよりも1や2という「型」の方がより特殊化されてるからそっちで比較されちゃったんだろうな
let n: 1 = 1;
if (n === 2) { // 同じエラー
if (n === <number>2) { // OK (もちろんfalseになる)
number型定数のデフォがnumber型だと最初がエラーにならなくなるから難しい問題だな
定数同士の比較の時は型を昇格させるみたいな処理を追加する事になるのかな
これは興味深い挙動だな
確かにnumberよりも1や2という「型」の方がより特殊化されてるからそっちで比較されちゃったんだろうな
let n: 1 = 1;
if (n === 2) { // 同じエラー
if (n === <number>2) { // OK (もちろんfalseになる)
number型定数のデフォがnumber型だと最初がエラーにならなくなるから難しい問題だな
定数同士の比較の時は型を昇格させるみたいな処理を追加する事になるのかな
458デフォルトの名無しさん
2016/09/27(火) 00:14:39.14ID:pG4L5ums literal types増えたのリリースノートに書いてあるだろ
アナウンスのドキュメントさえ読まないバカが賢ぶってもまるわかりなんだよ
アナウンスのドキュメントさえ読まないバカが賢ぶってもまるわかりなんだよ
459デフォルトの名無しさん
2016/09/27(火) 00:21:02.93ID:DHOAQjGg 変なのが来た
460デフォルトの名無しさん
2016/09/27(火) 13:49:47.90ID:cO8I5ivP Delphiか、、Prismはお試しで終わったっけな
461デフォルトの名無しさん
2016/09/27(火) 16:37:55.22ID:LSfhFpLX espower-typescriptのtypescript2対応版ってないですか?
462デフォルトの名無しさん
2016/09/27(火) 18:40:40.20ID:LSfhFpLX espower-typescriptは自動でproject rootのtsconfig.jsonを参照しているんですが
別ファイルで指定する方法ないでしょうか?
別ファイルで指定する方法ないでしょうか?
463デフォルトの名無しさん
2016/09/27(火) 22:52:10.27ID:K3k5rGhG464デフォルトの名無しさん
2016/09/30(金) 12:56:49.51ID:Y6l190wq typescriptでは、
こういう書き方をするようですが、
$(document).ready(() => { ... });
普通の書き方
$(document).ready(function () { ... });
だとダメなのでしょうか?
こういう書き方をするようですが、
$(document).ready(() => { ... });
普通の書き方
$(document).ready(function () { ... });
だとダメなのでしょうか?
465デフォルトの名無しさん
2016/09/30(金) 13:07:29.24ID:LMNz6D7V >>464
全く問題ないよ。関数内のthisの指し先の違いにだけ注意がいる
全く問題ないよ。関数内のthisの指し先の違いにだけ注意がいる
466デフォルトの名無しさん
2016/09/30(金) 17:16:18.31ID:ff48EwFg >>464
typeScriptというよりes2015ですね。
typeScriptというよりes2015ですね。
467デフォルトの名無しさん
2016/10/05(水) 16:03:45.86ID:ndferu82 jQueryの場合はコールバック内で$(this)とかするけど() => {にするとおかしな事になる(最新だとどうなるかは分からん)
だからjQueryに渡す場合は全部functionにしてる。一貫性がなくなって気持ち悪いけど
だからjQueryに渡す場合は全部functionにしてる。一貫性がなくなって気持ち悪いけど
468デフォルトの名無しさん
2016/10/06(木) 09:02:48.12ID:RX03s8Mg どちらも関数ではあるけど用途に違いがある以上、元より一貫性を出すことなんてできないでしょ
469デフォルトの名無しさん
2016/10/06(木) 15:59:28.90ID:xaiWfMZS () => {}.bind(this)
470デフォルトの名無しさん
2016/10/06(木) 20:20:49.67ID:57+jsWi1471デフォルトの名無しさん
2016/10/07(金) 14:51:03.71ID:CXORFQa6 null合体演算子はありますか?
472デフォルトの名無しさん
2016/10/08(土) 21:45:49.55ID:2uwi8nYQ >>471
|| のことかな? falseだとダメだけど
|| のことかな? falseだとダメだけど
473デフォルトの名無しさん
2016/10/20(木) 18:22:59.19ID:UBHF5fAS typescriptでnode_modules配下のjsコードのimportは可能ですが
自作のjsコードをimportして使いたいのですが可能でしょうか?
具体的に言うとpegjsで作ったparserをtypescriptから使いたいんです。
自作のjsコードをimportして使いたいのですが可能でしょうか?
具体的に言うとpegjsで作ったparserをtypescriptから使いたいんです。
474デフォルトの名無しさん
2016/10/21(金) 09:58:59.53ID:xTFSBjWO475デフォルトの名無しさん
2016/10/21(金) 10:02:09.42ID:PxEW311p 公開部分だけなら自分で定義ファイル書くのは容易なんじゃないか
もしくはソースをTypeScriptに変換しちゃって-d付きでコンパイル
もしくはソースをTypeScriptに変換しちゃって-d付きでコンパイル
476デフォルトの名無しさん
2016/10/21(金) 12:40:55.64ID:xTFSBjWO ちょっと考えればtsだってjsに変換してからimportしてるわけだからエラーが出てるようにみえるのは
定義がないだけってわかるだろうに。アホですな。
定義がないだけってわかるだろうに。アホですな。
477デフォルトの名無しさん
2016/10/24(月) 23:34:32.07ID:oa9Cbf2z typescript2.0から.d.tsのデフォルトの検索パスってどうなってるんですかね?
とりあえず自分で定義したのはnode_modules/@types/ に置くことで認識はするんですけど
気持ち悪いのでできればnode_modulesに置きたくないんですよね
とりあえず自分で定義したのはnode_modules/@types/ に置くことで認識はするんですけど
気持ち悪いのでできればnode_modulesに置きたくないんですよね
478デフォルトの名無しさん
2016/10/25(火) 00:14:10.49ID:jY50IjHL その手の質問はQ&Aサービス使え
479デフォルトの名無しさん
2016/10/25(火) 09:54:10.21ID:wi8xj/Ad480デフォルトの名無しさん
2016/10/25(火) 15:38:46.44ID:DJibeu24 そう言わずに教えてあげればいいじゃない。どうせ話題もないんだし
481デフォルトの名無しさん
2016/10/25(火) 16:45:27.88ID:k0D4gpoS .net frameworkを使えたりframeworkからコンパイルできれば面白くなりそうなのに
482デフォルトの名無しさん
2016/10/25(火) 18:39:55.45ID:UTXk7OSn たしかに .Net Framework使えたら便利だな
現状ではNode.jsから外部コマンドを叩いて
C#やPowerShellを経由すればできるんじゃね
現状ではNode.jsから外部コマンドを叩いて
C#やPowerShellを経由すればできるんじゃね
483デフォルトの名無しさん
2016/10/25(火) 20:33:02.00ID:DJibeu24 やっぱりTypeScript使いの人はMicrosoftマンセーの人が多いの?
Mac使いとしては.Netが使えたからどうなんって感じなんだが。
ElectronとかでTypeScriptを使う話をしてるの?
Mac使いとしては.Netが使えたからどうなんって感じなんだが。
ElectronとかでTypeScriptを使う話をしてるの?
484デフォルトの名無しさん
2016/10/25(火) 21:30:56.89ID:VLkXttsf Windows向けtypescript処理系自体jscriptにコンパイルされて.NETオブジェクト経由でファイルアクセスしてなかったか
485デフォルトの名無しさん
2016/10/26(水) 02:40:39.39ID:m/Az1cPZ >>483
>TypeScript使いの人はMicrosoftマンセーの人が多いの?
特定の企業が好きというよりかは
デファクトスタンダードに乗りたいだけ
WinとMacならWinが(価格性能比的に)使いやすいし
AndroidとiPhoneならAndroidが使いやすいから
(規制が少ないのでとくに開発側としては)
>TypeScript使いの人はMicrosoftマンセーの人が多いの?
特定の企業が好きというよりかは
デファクトスタンダードに乗りたいだけ
WinとMacならWinが(価格性能比的に)使いやすいし
AndroidとiPhoneならAndroidが使いやすいから
(規制が少ないのでとくに開発側としては)
486デフォルトの名無しさん
2016/10/26(水) 03:51:14.56ID:CrOhdQQd typescript使うよりc#で書くほうが楽だよね
487デフォルトの名無しさん
2016/10/26(水) 07:48:56.60ID:JLzF9ZGl >>481
JsProjectWinRTNamespace: https://msdn.microsoft.com/library/mt125480
WinRT (UWP) ならJavaScript側へ公開できるから、それを使うことは可能。
なんにせよ、JavaScriptホスト側を握っていれば (ChakraCore等) 好きにできる。Macでも。
JsProjectWinRTNamespace: https://msdn.microsoft.com/library/mt125480
WinRT (UWP) ならJavaScript側へ公開できるから、それを使うことは可能。
なんにせよ、JavaScriptホスト側を握っていれば (ChakraCore等) 好きにできる。Macでも。
488デフォルトの名無しさん
2016/10/26(水) 10:52:47.34ID:jSNrAQ3l489デフォルトの名無しさん
2016/10/26(水) 14:57:17.75ID:L9VZpe/b490デフォルトの名無しさん
2016/10/27(木) 00:16:48.17ID:e6l93V+P491デフォルトの名無しさん
2016/10/27(木) 00:28:41.45ID:rC8yedLe Web系といってもBtoBの比較的かっちりしたものをやってるところはC#やJava使ってWindows上で開発してるところも多いよ
そしてTypeScriptもWeb系の中では比較的そっちの方で好まれてるイメージ
そしてTypeScriptもWeb系の中では比較的そっちの方で好まれてるイメージ
492デフォルトの名無しさん
2016/10/27(木) 07:44:18.44ID:aKCl6pYl Web系じゃないけどソフトのプログラムでJavaScriptが採用されてるから使ってるよ
493デフォルトの名無しさん
2016/10/31(月) 11:16:34.62ID:zObjWshz データと操作を分離する運用
https://goo.gl/L2gey4
上記スタックオーバーフローを見てたんですが
データ構造を扱うときにclassを使わずにすべてjsonにしてしまうって運用は結構を有る話でしょうか?
個人的にはElixirも触っていてデータ構造と処理関数を分けると言うのはアリだとは思うんですが
手元のコードはclass使いまくりでシリアライズが必要になったタイミングで軽く後悔しているところです(^ρ^)
https://goo.gl/L2gey4
上記スタックオーバーフローを見てたんですが
データ構造を扱うときにclassを使わずにすべてjsonにしてしまうって運用は結構を有る話でしょうか?
個人的にはElixirも触っていてデータ構造と処理関数を分けると言うのはアリだとは思うんですが
手元のコードはclass使いまくりでシリアライズが必要になったタイミングで軽く後悔しているところです(^ρ^)
494デフォルトの名無しさん
2016/10/31(月) 12:47:50.83ID:UgzYDGEX そんなに難しい話じゃないような
class Pen {
constructor(private json: PenData) {}
}
でいいじゃん
class Pen {
constructor(private json: PenData) {}
}
でいいじゃん
495デフォルトの名無しさん
2016/10/31(月) 12:58:02.65ID:zObjWshz >>494
それでデシリアライズしたものをシリアライズした時にどうやってPenDataだと特定するの?
それでデシリアライズしたものをシリアライズした時にどうやってPenDataだと特定するの?
496デフォルトの名無しさん
2016/10/31(月) 13:30:00.95ID:lUtaNTCT >>495
シリアライズした構造が固定なら、ルートから順に再構築するのでは?
自分で全てのコンストラクタなりdeserializeメソッドを実装することになる
汎用デシリアライズ関数1個で全てを賄うつもりなら、JSON内にクラス名を保持して
クラス名とJSONからオブジェクトを構築するファクトリを用意するのかな
TypeScriptは実行時型情報が無いから、意外と素直で原始的な方式になると思う
シリアライズした構造が固定なら、ルートから順に再構築するのでは?
自分で全てのコンストラクタなりdeserializeメソッドを実装することになる
汎用デシリアライズ関数1個で全てを賄うつもりなら、JSON内にクラス名を保持して
クラス名とJSONからオブジェクトを構築するファクトリを用意するのかな
TypeScriptは実行時型情報が無いから、意外と素直で原始的な方式になると思う
497デフォルトの名無しさん
2016/10/31(月) 16:02:19.09ID:zObjWshz498デフォルトの名無しさん
2016/10/31(月) 17:59:38.01ID:lUtaNTCT >>497
ロジック的にJSON (=循環の無い木構造) にできるなら、それが楽だとは思う
実行時には循環参照が必要になる場合は、保存時にフラットなJSONに変換せざるを得ない
これを汎用化していくと、いわゆるO/Rマッパーになるんだろうな
ロジック的にJSON (=循環の無い木構造) にできるなら、それが楽だとは思う
実行時には循環参照が必要になる場合は、保存時にフラットなJSONに変換せざるを得ない
これを汎用化していくと、いわゆるO/Rマッパーになるんだろうな
499デフォルトの名無しさん
2016/10/31(月) 20:32:53.85ID:963XFQ2I ここまでなんのためにシリアライズするか確認するやつなし
500デフォルトの名無しさん
2016/10/31(月) 21:41:15.52ID:UgzYDGEX >>495
そんなもんまともなスキーマ設計してたら一意に決まるだろ
JSは伝統的にAPI指向で、入出力のスキーマだけはきっちり守って
あとは適当に辻褄合わせすればいいという考え方をするもんなんだよ
エンティティを重視しないの
そんなもんまともなスキーマ設計してたら一意に決まるだろ
JSは伝統的にAPI指向で、入出力のスキーマだけはきっちり守って
あとは適当に辻褄合わせすればいいという考え方をするもんなんだよ
エンティティを重視しないの
501デフォルトの名無しさん
2016/10/31(月) 21:42:12.65ID:zObjWshz chrome extension作ってまして
background - popup -contentscript間のデータのやり取りがjson経由でしかできなかったので。
background - popup -contentscript間のデータのやり取りがjson経由でしかできなかったので。
502デフォルトの名無しさん
2016/11/01(火) 01:26:11.04ID:R4cGftBs 永続化や通信でシリアライズが必要ならまず構成と通信内容を決めて
実装可能であることを確認してから個々の実装に入るべきだった
行きあたりばったりで通信が必要なデータやコマンドが噴出してるだろうから
個別機能に逃げずに先にそこを設計しろ
実装可能であることを確認してから個々の実装に入るべきだった
行きあたりばったりで通信が必要なデータやコマンドが噴出してるだろうから
個別機能に逃げずに先にそこを設計しろ
503デフォルトの名無しさん
2016/11/01(火) 03:17:05.88ID:ZbjdSYd3 >>501
普通にobjectを渡せるんじゃないか?
普通にobjectを渡せるんじゃないか?
504デフォルトの名無しさん
2016/11/09(水) 22:55:56.80ID:w82iFkDp React Componentを相対パスでimportするのはもう嫌なので、絶対パスでimportしてやる
http://qiita.com/endam/items/49696abedb68878d8b01
コレいいなって思ったんですがTypeScriptで絶対パス指定する方法って標準であったりしないですかね?
http://qiita.com/endam/items/49696abedb68878d8b01
コレいいなって思ったんですがTypeScriptで絶対パス指定する方法って標準であったりしないですかね?
505デフォルトの名無しさん
2016/11/10(木) 00:57:52.66ID:+mabk82N TypeScript 2.1 RC: Better Inference, Async Functions, and More
https://blogs.msdn.microsoft.com/typescript/2016/11/08/typescript-2-1-rc-better-inference-async-functions-and-more/
https://blogs.msdn.microsoft.com/typescript/2016/11/08/typescript-2-1-rc-better-inference-async-functions-and-more/
506デフォルトの名無しさん
2016/11/10(木) 03:11:40.39ID:XJYCbDSV モジュール周りはここに書いてあるようだ。
https://www.typescriptlang.org/docs/handbook/module-resolution.html
https://www.typescriptlang.org/docs/handbook/module-resolution.html
507デフォルトの名無しさん
2016/11/12(土) 00:03:42.69ID:0EI9e+TE508デフォルトの名無しさん
2016/11/16(水) 13:26:15.81ID:VglaLP8t bucklescript ω
509デフォルトの名無しさん
2016/11/20(日) 01:23:41.33ID:PZEuAd0p みんなエディタは何使ってるの? VisualStudio以外にいいエディタある?
510デフォルトの名無しさん
2016/11/20(日) 08:29:21.81ID:p95gh/Vn vscode
511デフォルトの名無しさん
2016/11/20(日) 09:20:47.29ID:mNZMIvsS vim
512デフォルトの名無しさん
2016/11/20(日) 09:40:13.46ID:0ByPx+DX513デフォルトの名無しさん
2016/11/20(日) 16:06:26.39ID:rN9nZaoB514デフォルトの名無しさん
2016/11/20(日) 17:44:23.07ID:Y8tBh63Q >>513
+1
+1
515デフォルトの名無しさん
2016/11/24(木) 16:16:50.02ID:Kbd9UGgc ALM 使ってみたけど、JIS キーボードで CTRL+¥ が効かなくてツリービューが出ない…
ファイル操作はツリービューでやるんだよね?
ファイル操作はツリービューでやるんだよね?
516デフォルトの名無しさん
2016/11/25(金) 11:07:12.84ID:lg4MxwBZ >>513
本家のプレイグラウンドも楽しいけど、ちょっと他のライブラリとか合わせられるようなのもほしい。 こういうのと組み合わせて作ってくんないかなー。
本家のプレイグラウンドも楽しいけど、ちょっと他のライブラリとか合わせられるようなのもほしい。 こういうのと組み合わせて作ってくんないかなー。
517デフォルトの名無しさん
2016/12/01(木) 23:31:35.77ID:V3pVktwk518デフォルトの名無しさん
2016/12/02(金) 15:42:21.41ID:ocojT6FV 需要なしか
519デフォルトの名無しさん
2016/12/02(金) 21:48:15.76ID:i9Hqboy9 12月突入数時間前まで誰も立てなかったしそりゃね
520デフォルトの名無しさん
2016/12/03(土) 16:07:27.97ID:iU+ignEA いつも納期を守らないひとですねわかります
521デフォルトの名無しさん
2016/12/03(土) 22:27:39.83ID:W5YxFMDl TypeScript 2.1のkeyofとかMapped typesがアツい
http://qiita.com/Quramy/items/e27a7756170d06bef22a
そろそろ2.1正式版来る気配
http://qiita.com/Quramy/items/e27a7756170d06bef22a
そろそろ2.1正式版来る気配
522デフォルトの名無しさん
2016/12/05(月) 08:39:36.02ID:vZnFdVec 人気ないでしょ。
523デフォルトの名無しさん
2016/12/05(月) 09:21:11.08ID:nuFcVUYF 英語圏はどうなのよ
524デフォルトの名無しさん
2016/12/05(月) 16:49:11.01ID:5hp1IXjD525デフォルトの名無しさん
2016/12/05(月) 17:57:33.20ID:dF177W8B >>519
Tcl/Tkの誰か立ててよ
Tcl/Tkの誰か立ててよ
526デフォルトの名無しさん
2016/12/08(木) 07:43:57.58ID:sRPpwh3/ https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/
「...」系の構文が増えるといいなぁ
最近のC++に追加された構文が便利だから
「...」系の構文が増えるといいなぁ
最近のC++に追加された構文が便利だから
527デフォルトの名無しさん
2016/12/08(木) 14:41:29.32ID:K4A6J/m6 しかしkeyofとかTypeScriptスゲーな
型言語としてやれる事はとことんやろうという方針なんだな
keyofは既存のJavaScriptコードと連携する時にコーディングミスをコンパイル時に分かるようになるって事かな
TypeScriptオンリーの時は多分使いそうにないけど、何か使いどころがあるんだろうか?
型言語としてやれる事はとことんやろうという方針なんだな
keyofは既存のJavaScriptコードと連携する時にコーディングミスをコンパイル時に分かるようになるって事かな
TypeScriptオンリーの時は多分使いそうにないけど、何か使いどころがあるんだろうか?
528デフォルトの名無しさん
2016/12/08(木) 14:49:41.32ID:K4A6J/m6 と思ったらMapped Typesでkeyofが必要だったんだな。納得した。
Mapped Typesは使いどころを模索中…
Mapped Typesは使いどころを模索中…
529デフォルトの名無しさん
2016/12/08(木) 23:29:45.09ID:/aGxLpEu ちょっと手段が目的化してる感が否めないなあ
最初からTypeScript前提で作ったモジュールを使う分にはkeyofが必要な状況はそう無いだろうし、
既存のJSライブラリのインターフェース書くための機能だと割り切るんだったら
そこまで厳格にDRYに拘る必要もないように思うが
最初からTypeScript前提で作ったモジュールを使う分にはkeyofが必要な状況はそう無いだろうし、
既存のJSライブラリのインターフェース書くための機能だと割り切るんだったら
そこまで厳格にDRYに拘る必要もないように思うが
530デフォルトの名無しさん
2016/12/09(金) 08:58:45.48ID:zMqsgGKG ・interface を readonly の有無で2回書かなくて良い
・エレメントに設定する一連の属性をオブジェクトで渡す際の型安全
ぱっと思いつくだけでも悪くない機能だと思うけど
・エレメントに設定する一連の属性をオブジェクトで渡す際の型安全
ぱっと思いつくだけでも悪くない機能だと思うけど
531デフォルトの名無しさん
2016/12/10(土) 08:55:22.73ID:ZQIWZdV9 classのコンストラクタを定義する場合、もしメンバ変数が20個あるとすると、
コンストラクタにも20個の引数を並べて、
constructor(arg1, arg2, ......, arg20){
this.parm1 = arg1;
this.parm2 = arg2;
this.parm3 = arg3;
..
}
のようにする必要がありますか?
もう少し簡素に書けませんか?
コンストラクタにも20個の引数を並べて、
constructor(arg1, arg2, ......, arg20){
this.parm1 = arg1;
this.parm2 = arg2;
this.parm3 = arg3;
..
}
のようにする必要がありますか?
もう少し簡素に書けませんか?
532デフォルトの名無しさん
2016/12/10(土) 10:13:56.45ID:yQhPHczS constructor(public parm1, private parm2) {
533デフォルトの名無しさん
2016/12/10(土) 13:08:54.64ID:ZQIWZdV9534デフォルトの名無しさん
2016/12/16(金) 22:23:17.99ID:Za7bRyyh 型システムがチューリング完全になっててもおかしくないな
たしか scala と c++ は達成してた筈
たしか scala と c++ は達成してた筈
535デフォルトの名無しさん
2016/12/16(金) 22:39:54.50ID:lf6NCS1E C++はtemplateでしょ
template引数の扱いがほぼ帰納関数の定義みたいなもんだしな
template引数の扱いがほぼ帰納関数の定義みたいなもんだしな
536デフォルトの名無しさん
2016/12/16(金) 22:40:27.11ID:oD0nT6zl TypeScriptの型はあくまで検査専用でメタプログラミングには使えないから無理じゃない?
537デフォルトの名無しさん
2016/12/16(金) 23:19:39.50ID:hVjcwv5q C++のテンプレートがチューリング完全だとしても文字列のハッシュ値は計算出来ない
なぜならC++の文字列はポインタでしかないけどコンパイル前に参照する事が出来ないから
それでもチューリング完全なのは間違いないけど、別にチューリング完全だからってなんでも出来るわけじゃないってことだな
なぜならC++の文字列はポインタでしかないけどコンパイル前に参照する事が出来ないから
それでもチューリング完全なのは間違いないけど、別にチューリング完全だからってなんでも出来るわけじゃないってことだな
538デフォルトの名無しさん
2016/12/16(金) 23:21:43.20ID:hVjcwv5q ちなみに文字列じゃなくて文字の配列にすれば問題ない
const char* str = "hoge";じゃなくて
const char str[] = { 'h', 'o', 'g', 'e' };ってこと
const char* str = "hoge";じゃなくて
const char str[] = { 'h', 'o', 'g', 'e' };ってこと
539デフォルトの名無しさん
2016/12/16(金) 23:24:42.09ID:hVjcwv5q 間違えた…
const char str[] = { 'h', 'o', 'g', 'e', '\0' };
だった
連投ごめんなさい
const char str[] = { 'h', 'o', 'g', 'e', '\0' };
だった
連投ごめんなさい
540デフォルトの名無しさん
2016/12/16(金) 23:29:20.71ID:lf6NCS1E ゲーデル「そこはゲーデル数で…」
541デフォルトの名無しさん
2016/12/16(金) 23:34:58.93ID:ZvALx4tK ゲーデルはホント天才だよな
紙と手廻し計算機しかない時代に
「符号化すれば数式だろうが証明図だろうが数で表せるし
数の計算が数式処理や証明じゃん」なんて
紙と手廻し計算機しかない時代に
「符号化すれば数式だろうが証明図だろうが数で表せるし
数の計算が数式処理や証明じゃん」なんて
542デフォルトの名無しさん
2016/12/17(土) 17:02:33.38ID:a9hyyPvt むしろその世代だったからよかったのかも
543デフォルトの名無しさん
2016/12/18(日) 15:38:22.61ID:6QPg4rBj TypeScript 2.0.8でちょっとお尋ね
~~~~file1.ts
namespace TestNS { export interface TestInterface {} }
~~~~
~~~~file2.ts
/// <reference path="file1.ts" />
import * as Lib from "〜"; ← こいつがいると下のTestInterfaceでTS:2304 Cannot find nameが出る(コメントアウトすれば出ない)
namespace TestNS {
export class Test implements TestInterface {}
}
~~~~
上に書いた通りimport文がいるとTestInterfaceでTS:2304 Cannot find name 'TestInterface'になるんだけれども, これってどう理解したらよい?
import文の有無で見つからなくなるのはとても不思議な感があるんだけど
~~~~file1.ts
namespace TestNS { export interface TestInterface {} }
~~~~
~~~~file2.ts
/// <reference path="file1.ts" />
import * as Lib from "〜"; ← こいつがいると下のTestInterfaceでTS:2304 Cannot find nameが出る(コメントアウトすれば出ない)
namespace TestNS {
export class Test implements TestInterface {}
}
~~~~
上に書いた通りimport文がいるとTestInterfaceでTS:2304 Cannot find name 'TestInterface'になるんだけれども, これってどう理解したらよい?
import文の有無で見つからなくなるのはとても不思議な感があるんだけど
544デフォルトの名無しさん
2016/12/18(日) 15:52:58.94ID:gkl2dVgP 内部モジュール形式と外部があって内部だとネームスペースはすべて同じものとしてマージされるから参照できる
内部ゴミだから外部覚えろ
内部ゴミだから外部覚えろ
545デフォルトの名無しさん
2016/12/19(月) 20:40:04.16ID:tHwvluTB reference pathは使わないことを勧める
型定義ファイルの参照はreference typesや--types
連結するなら目的別にプロジェクトを分けて--outFile
型定義ファイルの参照はreference typesや--types
連結するなら目的別にプロジェクトを分けて--outFile
546543
2016/12/19(月) 23:08:19.83ID:WEeYyWf0 結局外部モジュール化して解決しました
細かいことは組んでからコンパイル済みソース見て考えることにします
細かいことは組んでからコンパイル済みソース見て考えることにします
547デフォルトの名無しさん
2017/01/19(木) 09:39:46.00ID:uhfgjGGl548デフォルトの名無しさん
2017/02/03(金) 10:13:11.49ID:ppyFFvug TypeScript 2.2
https://blogs.msdn.microsoft.com/typescript/2017/02/02/announcing-typescript-2-2-rc/
・object type - "non-primitive"を表す型
・mixins and composable classes - 無名クラスを返す関数のサポート
https://blogs.msdn.microsoft.com/typescript/2017/02/02/announcing-typescript-2-2-rc/
・object type - "non-primitive"を表す型
・mixins and composable classes - 無名クラスを返す関数のサポート
549デフォルトの名無しさん
2017/02/03(金) 11:53:48.71ID:OZdxyk8U550デフォルトの名無しさん
2017/02/13(月) 21:38:00.71ID:g48+zfGw typescript版のjsFiddleみたいなのないですかね?
551デフォルトの名無しさん
2017/02/13(月) 21:52:46.81ID:XAOuYKtl552デフォルトの名無しさん
2017/02/14(火) 08:03:16.30ID:06xiI2rQ >>551
補完が効かないとtypescriptの意味ないよね。
補完が効かないとtypescriptの意味ないよね。
553デフォルトの名無しさん
2017/02/14(火) 22:01:13.41ID:PJNUS5QV なぜ TypeScript の型システムが健全性を諦めているか
http://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
http://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
554デフォルトの名無しさん
2017/02/15(水) 11:35:44.90ID:Uv6dN9fe typescriptでvue.js使ってる人っています?
どんな感じか聞いてもいいですか?
vueファイルのscriptにtypescriptを使った場合にVisualStudioCodeから補完聞かせる方法ってあるんですかね?
どんな感じか聞いてもいいですか?
vueファイルのscriptにtypescriptを使った場合にVisualStudioCodeから補完聞かせる方法ってあるんですかね?
555デフォルトの名無しさん
2017/02/15(水) 13:37:43.12ID:0zPxl8zN いいよ
あるよ
あるよ
556デフォルトの名無しさん
2017/02/16(木) 14:34:53.75ID:I/Biy33K typescript ってclassの中でclassは定義できないの?
557デフォルトの名無しさん
2017/02/16(木) 16:54:40.22ID:H/kSQGez >>556
innerClass = class { ... } の構文を使ってみては?
innerClass = class { ... } の構文を使ってみては?
558デフォルトの名無しさん
2017/02/16(木) 18:23:19.49ID:I/Biy33K559デフォルトの名無しさん
2017/02/17(金) 10:02:26.32ID:XBlUtmng 構造的にESにないものは採用されないんじゃなかろうか
俺もprivate static Inner = class {...で試したけどあまり使えなさそうだからやめた
俺もprivate static Inner = class {...で試したけどあまり使えなさそうだからやめた
560デフォルトの名無しさん
2017/02/23(木) 21:12:34.52ID:sjM/LKuB Announcing TypeScript 2.2
https://blogs.msdn.microsoft.com/typescript/2017/02/22/announcing-typescript-2-2/
TypeScript 2.2.1 変更点
http://qiita.com/vvakame/items/eb6c054360868b88f9b1
https://blogs.msdn.microsoft.com/typescript/2017/02/22/announcing-typescript-2-2/
TypeScript 2.2.1 変更点
http://qiita.com/vvakame/items/eb6c054360868b88f9b1
561デフォルトの名無しさん
2017/03/19(日) 00:28:00.75ID:zrbJr/YL Chrome拡張機能を作ってる方結構いるみたいなので教えてほしいのですが
「chrome.〜〜〜」のAPIが「Supplied parameters do not match any signature of call target.」とコンパイルエラーになります
「/// <reference path="./node_modules/@types/chrome/index.d.ts" />」でd.tsは指定しているのですが、他にも何か記述が必要ですか?
「chrome.〜〜〜」のAPIが「Supplied parameters do not match any signature of call target.」とコンパイルエラーになります
「/// <reference path="./node_modules/@types/chrome/index.d.ts" />」でd.tsは指定しているのですが、他にも何か記述が必要ですか?
562デフォルトの名無しさん
2017/03/19(日) 02:18:51.51ID:9qStAS/N563デフォルトの名無しさん
2017/03/19(日) 02:40:46.59ID:/2pY/ZTT インストしても明示的なインポートなしには使えんよ
564デフォルトの名無しさん
2017/03/19(日) 03:16:06.29ID:TMN19OY5 >>561
エラーしてる部分のソース貼るといいよ
エラーしてる部分のソース貼るといいよ
565561
2017/03/19(日) 11:24:02.73ID:zrbJr/YL 皆様ありがとうございます…解決しました…chrome.〜〜に引数が設定されてなくてエラーになるという超凡ミスでした…
エラーメッセージの意味をきちんと理解しないといけないですね…
--- コンパイルエラー ----------------------------------------------------------
if (window.location.href.indexOf('aaa.com') !== -1) {
chrome.pageAction.onClicked.addListener();
}
------------------------------------------------------------------------------
--- コンパイル正常 -----------------------------------------------------------
if (window.location.href.indexOf('aaa.com') !== -1) {
chrome.pageAction.onClicked.addListener(() => {
});
}
------------------------------------------------------------------------------
あと、仰る通り<reference path= />なくてもコンパイル通りました
皆様お騒がせしました
エラーメッセージの意味をきちんと理解しないといけないですね…
--- コンパイルエラー ----------------------------------------------------------
if (window.location.href.indexOf('aaa.com') !== -1) {
chrome.pageAction.onClicked.addListener();
}
------------------------------------------------------------------------------
--- コンパイル正常 -----------------------------------------------------------
if (window.location.href.indexOf('aaa.com') !== -1) {
chrome.pageAction.onClicked.addListener(() => {
});
}
------------------------------------------------------------------------------
あと、仰る通り<reference path= />なくてもコンパイル通りました
皆様お騒がせしました
566デフォルトの名無しさん
2017/03/19(日) 13:25:11.81ID:9qStAS/N567デフォルトの名無しさん
2017/03/28(火) 10:03:39.39ID:r9lg9pov ターゲットにWebAssemblyを追加する計画とか無いのかな
568デフォルトの名無しさん
2017/03/28(火) 14:44:15.57ID:3EkUFmFA interfaceの定義でArrayの要素が2つしかない場合の定義の仕方ってあるかな
interface Pair {
number[2]
}
interface Data {
pairs :Pair[]
}
みたいな感じで定義できないもんか。
諦めてnumber[]にするしかない?
interface Pair {
number[2]
}
interface Data {
pairs :Pair[]
}
みたいな感じで定義できないもんか。
諦めてnumber[]にするしかない?
569デフォルトの名無しさん
2017/03/28(火) 14:54:23.37ID:OG3qmdJs タプル使え
570デフォルトの名無しさん
2017/03/28(火) 17:30:18.19ID:3EkUFmFA571デフォルトの名無しさん
2017/03/30(木) 23:49:26.09ID:Ya8jf9nB index.htmlに直接CDNからreactとreact-domを読み込んで
npmからは@types/reactと@types/react-domをインストールし
tsxファイルからimport文を使わずにreactを使ったところ何の問題もなく動いた。
plotly.jsを同じように使おうとしたら自動では定義ファイルを読んでくれない。
この違いは一体何なのか?
と思って定義ファイルを見たところreactとreact-domには以下のような記載がある
export as namespace ReactDOM;
export as namespace React;
上記を真似て定義ファイルに
export as namespace Plotly;
を追加したら同じ挙動になった。
export as namespace XXX ってなんすか?
npmからは@types/reactと@types/react-domをインストールし
tsxファイルからimport文を使わずにreactを使ったところ何の問題もなく動いた。
plotly.jsを同じように使おうとしたら自動では定義ファイルを読んでくれない。
この違いは一体何なのか?
と思って定義ファイルを見たところreactとreact-domには以下のような記載がある
export as namespace ReactDOM;
export as namespace React;
上記を真似て定義ファイルに
export as namespace Plotly;
を追加したら同じ挙動になった。
export as namespace XXX ってなんすか?
572デフォルトの名無しさん
2017/03/31(金) 01:47:51.53ID:y+1gOmlP そのモジュールのグローバル変数化宣言
公式wiki嫁
公式wiki嫁
573デフォルトの名無しさん
2017/04/01(土) 20:31:37.83ID:es45r1Ne 型定義ファイルの書き方がよくわからなくてつんでいます
node-transmission
https://github.com/FLYBYME/node-transmission
の型定義ファイルが見当たらないので作っているんですが
もとのjsファイルのexport宣言が
var Transmission = module.exports = function (options) {
ってなっている場合に型定義ファイルとして以下のように書いても認識されないです。
declare interface transOptions {
port: number
host: string
}
declare class Transmission {
constructor(optins: transOptions)
}
export default Transmission
使う場合に
import * as Transmission from "transmission";
var transmission = new Transmission({
port : 9091,
host : '127.0.0.1'
});
って書いてもtransmission はany型のようです。
どう書くのが正解でしょうか?
node-transmission
https://github.com/FLYBYME/node-transmission
の型定義ファイルが見当たらないので作っているんですが
もとのjsファイルのexport宣言が
var Transmission = module.exports = function (options) {
ってなっている場合に型定義ファイルとして以下のように書いても認識されないです。
declare interface transOptions {
port: number
host: string
}
declare class Transmission {
constructor(optins: transOptions)
}
export default Transmission
使う場合に
import * as Transmission from "transmission";
var transmission = new Transmission({
port : 9091,
host : '127.0.0.1'
});
って書いてもtransmission はany型のようです。
どう書くのが正解でしょうか?
574デフォルトの名無しさん
2017/04/01(土) 22:04:14.42ID:es45r1Ne575デフォルトの名無しさん
2017/04/09(日) 14:34:29.06ID:ZBMiMXkM >>41
partial classは不採用になったので一応
Suggestion Backlog Slog, 4/3/2017
https://github.com/Microsoft/TypeScript/issues/14990
https://github.com/Microsoft/TypeScript/issues/563#issuecomment-291300044
partial classは不採用になったので一応
Suggestion Backlog Slog, 4/3/2017
https://github.com/Microsoft/TypeScript/issues/14990
https://github.com/Microsoft/TypeScript/issues/563#issuecomment-291300044
576デフォルトの名無しさん
2017/04/10(月) 14:18:00.18ID:BK5DCjs2 Google社内の標準言語としてTypeScriptが承認される。ng-conf 2017
http://www.publickey1.jp/blog/17/googletypescriptng-conf_2017.html
http://www.publickey1.jp/blog/17/googletypescriptng-conf_2017.html
577デフォルトの名無しさん
2017/04/10(月) 18:26:24.79ID:VEGABUso >>576
Dartどうすんだよ
Dartどうすんだよ
578デフォルトの名無しさん
2017/04/10(月) 20:28:20.75ID:kMiVc4KU 劣るうえ、使われてないdartは自動消滅。
ホントはわかってたこと。
ホントはわかってたこと。
579デフォルトの名無しさん
2017/04/11(火) 02:02:21.52ID:Kcnbnd8w typescriptでreduxの実装書くのしんどいね
http://qiita.com/wadahiro/items/7c421b668f28a99e2a29
こいつを参考に書いてるけど。他にいい書き方があれば
http://qiita.com/wadahiro/items/7c421b668f28a99e2a29
こいつを参考に書いてるけど。他にいい書き方があれば
580デフォルトの名無しさん
2017/04/11(火) 07:02:04.43ID:OeT6CnRN581デフォルトの名無しさん
2017/04/11(火) 17:04:01.31ID:ejHOB/DU >>579
こんなの誰が何に使うの?
こんなの誰が何に使うの?
582デフォルトの名無しさん
2017/04/11(火) 19:22:39.80ID:+8we66Ry ほんそれ
583デフォルトの名無しさん
2017/04/11(火) 22:09:52.06ID:rpuwd/d9 TypeScriptでreact-router-reduxに手を出したら大変な目に遭った。
584デフォルトの名無しさん
2017/04/11(火) 22:24:37.23ID:YJpuA+WP 単語が3つ以上入ってるパッケージに近寄りたくない
585デフォルトの名無しさん
2017/04/12(水) 19:01:00.44ID:BxTB0mZM586デフォルトの名無しさん
2017/04/12(水) 19:19:27.95ID:usx2Dq45 そういうフレームワーク色々あるやん
587デフォルトの名無しさん
2017/04/12(水) 20:26:06.76ID:IsZRv2xh588デフォルトの名無しさん
2017/04/12(水) 20:47:03.00ID:usx2Dq45589デフォルトの名無しさん
2017/04/12(水) 20:56:38.51ID:IsZRv2xh そのABCはストリングリテラル型には使えんわけよ。
590デフォルトの名無しさん
2017/04/12(水) 21:04:32.60ID:WRJ4LE6o redux の冗長な書き方をtypescriptの機能でなんとかしてほしいってことなんだろうけど。
react見たくpropsをinterface定義すれば大体いい感じで使える。みたいにredux の方もstateのinterface定義だけでいい感じに出来上がるような仕組みがほしい。
react見たくpropsをinterface定義すれば大体いい感じで使える。みたいにredux の方もstateのinterface定義だけでいい感じに出来上がるような仕組みがほしい。
591デフォルトの名無しさん
2017/04/12(水) 21:05:36.55ID:WRJ4LE6o >>585
つreact native
つreact native
592デフォルトの名無しさん
2017/04/12(水) 22:41:00.77ID:mYXXp/Z3593デフォルトの名無しさん
2017/04/12(水) 23:07:35.91ID:IsZRv2xh それ。
strが短いならそのまま書いても一緒だけど、actionのtypeって長くなりがちだから
二重に書くのがつらい。
strが短いならそのまま書いても一緒だけど、actionのtypeって長くなりがちだから
二重に書くのがつらい。
594デフォルトの名無しさん
2017/04/12(水) 23:08:47.06ID:0/0fFwi6 >>577
TypeScriptが標準言語になっても、Dartのことは忘れてませんよとGoogle担当者がフォロー
http://www.publickey1.jp/blog/17/typescriptdartgoogle.html
TypeScriptが標準言語になっても、Dartのことは忘れてませんよとGoogle担当者がフォロー
http://www.publickey1.jp/blog/17/typescriptdartgoogle.html
595デフォルトの名無しさん
2017/04/12(水) 23:50:07.42ID:29ufoOq3 constは型書かなくてもストリングリテラルに推論されるようになったんだが存知ない?
596デフォルトの名無しさん
2017/04/13(木) 00:12:31.67ID:IFJ42qsr 2.1からだね。2.0でも使ってたんだろうか
597デフォルトの名無しさん
2017/04/13(木) 00:19:44.83ID:rVYtPk7E ストリングリテラルに推論されるって?
これ通らないでしょ?
const STR = "str";
const ABC: STR = STR;
これ通らないでしょ?
const STR = "str";
const ABC: STR = STR;
598デフォルトの名無しさん
2017/04/13(木) 00:27:33.33ID:IFJ42qsr >>597
そりゃ二行目がストリングリテラルじゃないからね
そりゃ二行目がストリングリテラルじゃないからね
599デフォルトの名無しさん
2017/04/13(木) 00:33:01.65ID:rVYtPk7E600デフォルトの名無しさん
2017/04/13(木) 00:34:18.77ID:IFJ42qsr なにがやりたいのかよく解らんが
const STR = "str";
const ABC1 = STR;
const ABC2:”str” = ABC1;
type STRT=”str”;
const ABC3:STRT=STR;
全部通るよ
const STR = "str";
const ABC1 = STR;
const ABC2:”str” = ABC1;
type STRT=”str”;
const ABC3:STRT=STR;
全部通るよ
601デフォルトの名無しさん
2017/04/13(木) 00:39:19.82ID:7ydi5nIB602デフォルトの名無しさん
2017/04/13(木) 00:40:44.33ID:rVYtPk7E603デフォルトの名無しさん
2017/04/13(木) 00:44:07.45ID:7ydi5nIB 変数の型の参照なんて初歩の初歩なんだが教えてやるまい
604デフォルトの名無しさん
2017/04/13(木) 01:00:49.62ID:IFJ42qsr605デフォルトの名無しさん
2017/04/13(木) 01:13:36.05ID:rVYtPk7E const STR = "str";
type STRT = "str";
const ABC3: STRT=STR;
"str"を2回書かずにABC3が作れればそれでいいんだけど。
type STRT = "str";
const ABC3: STRT=STR;
"str"を2回書かずにABC3が作れればそれでいいんだけど。
606デフォルトの名無しさん
2017/04/13(木) 01:20:51.05ID:IFJ42qsr607デフォルトの名無しさん
2017/04/13(木) 06:09:08.50ID:32cPtkAw type STRT = typeof STR
608デフォルトの名無しさん
2017/04/13(木) 08:01:19.65ID:rVYtPk7E すまん、確かに思い違いしていたようだ。ありがとう。
609デフォルトの名無しさん
2017/04/13(木) 13:00:24.68ID:XE18llYI 恥ずかしか
610デフォルトの名無しさん
2017/04/13(木) 20:33:25.78ID:IFJ42qsr 認めて謝って感謝してるだけ立派だよ
611デフォルトの名無しさん
2017/04/16(日) 20:56:40.61ID:nOhMz2bP TypeScriptでExpressを使う場合について教えてください。
express-generatorなどのサンプルコードだと new Error したオブジェクトにstatusを
突っ込んで返していたりしますが、ここ、TypeScript的にはどうするのが普通でしょう?
みなさん自前でErrorのサブクラスを定義しているんでしょうか?あるいはどこかに
定番のものがあったりするんでしょうか?
express-generatorなどのサンプルコードだと new Error したオブジェクトにstatusを
突っ込んで返していたりしますが、ここ、TypeScript的にはどうするのが普通でしょう?
みなさん自前でErrorのサブクラスを定義しているんでしょうか?あるいはどこかに
定番のものがあったりするんでしょうか?
612デフォルトの名無しさん
2017/04/16(日) 22:51:14.41ID:SqhlDt4o 「どうでもいい」が普通じゃない?
そんなもんエラーハンドラで受けて適当にトレースとエラーメッセージ出したら終わりなんだから
型なんぞ要らん
手段と目的を履き違えるな
そんなもんエラーハンドラで受けて適当にトレースとエラーメッセージ出したら終わりなんだから
型なんぞ要らん
手段と目的を履き違えるな
613デフォルトの名無しさん
2017/04/16(日) 23:30:20.32ID:R4TJTEcK614デフォルトの名無しさん
2017/04/17(月) 00:09:50.93ID:CyuLkfZA そういうもんですかね?
エラーを表示するだけとは言ってもstatusは正しくセットしなきゃならないわけで、
TypeScriptを使う以上そこも型安全にやりたいってのは自然だと思うんですが。
そこだけtslintの警告をネグるのも気持ち悪いし。
エラーを表示するだけとは言ってもstatusは正しくセットしなきゃならないわけで、
TypeScriptを使う以上そこも型安全にやりたいってのは自然だと思うんですが。
そこだけtslintの警告をネグるのも気持ち悪いし。
615デフォルトの名無しさん
2017/04/17(月) 00:24:52.52ID:GVmJ+xSa アプリケーションの仕様としてエラー用のクラスを定義します。Errorのサブクラスだったり新規に自前のクラスを用意するかはケースバイケース。
当然途中で変わることもあり得ます。その際はきちんと他のメンバーと情報共有します。
当然途中で変わることもあり得ます。その際はきちんと他のメンバーと情報共有します。
616デフォルトの名無しさん
2017/04/17(月) 07:32:40.57ID:k0Nquy2H 自分は簡単なアプリではHttpErrorみたいなクラスを定義して使ってる。
もっと複雑なアプリだと、業務エラーのコードとHTTPのエラーコードで
もう一階層作ったりもするけど。
だが、これが推奨なやり方なのかは分からん。俺も知りたい。
もっと複雑なアプリだと、業務エラーのコードとHTTPのエラーコードで
もう一階層作ったりもするけど。
だが、これが推奨なやり方なのかは分からん。俺も知りたい。
617デフォルトの名無しさん
2017/04/17(月) 08:40:01.39ID:CyuLkfZA ありがとうございます。
statusというプロパティにステータスを返すのは決まっているんだからどこかに
出来合いのものがあるかと思ったんですが、やっぱり自前なんですね。
statusというプロパティにステータスを返すのは決まっているんだからどこかに
出来合いのものがあるかと思ったんですが、やっぱり自前なんですね。
618デフォルトの名無しさん
2017/04/20(木) 11:26:28.02ID:T7Zz78Cb npm linkを駆使してtypescriptでビジネスロジックを外部モジュールにしてるんだけど
tsc -wで自動コンパイルはできるんだけど
定義ファイルも同時に生成するコマンドオプションってないかな?
tsc -wで自動コンパイルはできるんだけど
定義ファイルも同時に生成するコマンドオプションってないかな?
619デフォルトの名無しさん
2017/04/20(木) 11:42:22.36ID:T7Zz78Cb >>618
すんません -w -dですね。ホント申し訳ない
すんません -w -dですね。ホント申し訳ない
620デフォルトの名無しさん
2017/04/21(金) 21:22:59.73ID:Uj6lwvRH TypeScriptで動的なキャストみたいなことってできるんでしょうか?
// どこかで定義されたclass
class X {}
interface AX extends X {
a: string;
}
func(x: X) {
if ( xが a: string というプロパティを持っていれば ) {
// ここではxをAXとして扱いたい
}
}
// どこかで定義されたclass
class X {}
interface AX extends X {
a: string;
}
func(x: X) {
if ( xが a: string というプロパティを持っていれば ) {
// ここではxをAXとして扱いたい
}
}
621デフォルトの名無しさん
2017/04/22(土) 00:25:56.48ID:NysYFg8M622デフォルトの名無しさん
2017/04/22(土) 10:55:16.81ID:scznilxz >>621
ありがとうございました。うまくいきました。
ありがとうございました。うまくいきました。
623デフォルトの名無しさん
2017/04/26(水) 12:25:16.92ID:mOputr8e f8appのコード読んでんだけど
flowって驚くほどtypeScriptと似てるね。
んでReduxのアクションな書き方が参考になる。
type ParseObject = Object;
export type Action =
{ type: 'LOADED_ABOUT', list: Array<ParseObject> }
| { type: 'LOADED_NOTIFICATIONS', list: Array<ParseObject> }
| { type: 'LOADED_MAPS', list: Array<ParseObject> }
コレ普通にtypeScriptでも使えた。
interface宣言だとこういう書き方できなけどtype宣言だとできんのね。
flowって驚くほどtypeScriptと似てるね。
んでReduxのアクションな書き方が参考になる。
type ParseObject = Object;
export type Action =
{ type: 'LOADED_ABOUT', list: Array<ParseObject> }
| { type: 'LOADED_NOTIFICATIONS', list: Array<ParseObject> }
| { type: 'LOADED_MAPS', list: Array<ParseObject> }
コレ普通にtypeScriptでも使えた。
interface宣言だとこういう書き方できなけどtype宣言だとできんのね。
624デフォルトの名無しさん
2017/04/27(木) 14:10:54.61ID:2oprloyo いやーTypeScriptって本当にいいものですよね
恥ずかしいソース書いてもコンパイルすればそれなりの形になってますし
全ソースが1つにまとまったjsファイルを見るとカタルシスを覚えます
javascriptを扱うのに最高の言語です
恥ずかしいソース書いてもコンパイルすればそれなりの形になってますし
全ソースが1つにまとまったjsファイルを見るとカタルシスを覚えます
javascriptを扱うのに最高の言語です
625デフォルトの名無しさん
2017/04/27(木) 16:28:37.55ID:a+4IBLmk 開発用と納品用でコードわけられるとかありがたい
626デフォルトの名無しさん
2017/04/27(木) 17:45:10.06ID:/9P4GBtP minifyが出来なくて悩んでおります。
Targetをes5にしてもエラーが出る。
Targetをes5にしてもエラーが出る。
627デフォルトの名無しさん
2017/04/28(金) 08:31:59.89ID:IMlkcp1b >>626
結局該当箇所っぽいところの構造を変えて解決した
case 'Text':
{
let text: Text;
/* ごちゃごちゃした処理*/
text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってなってるところで
なぜがtextという変数がminifyで消えずに残っていてエラーになっていたところ
case 'Text':
{
// let text: Text; <―削除
/* ごちゃごちゃした処理*/
let text:Text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってしたら治った。
結局該当箇所っぽいところの構造を変えて解決した
case 'Text':
{
let text: Text;
/* ごちゃごちゃした処理*/
text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってなってるところで
なぜがtextという変数がminifyで消えずに残っていてエラーになっていたところ
case 'Text':
{
// let text: Text; <―削除
/* ごちゃごちゃした処理*/
let text:Text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってしたら治った。
628デフォルトの名無しさん
2017/04/28(金) 09:00:40.63ID:IMlkcp1b すいませんminifyの件ですが一番の問題は
外部ライブラリとして別にパッケージを作ってnpm linkしていたんですが
その外部ライブラリのtsconfigの設定でtargetをes2015にしていたのが原因のようです。
npm上で公開してるライブラリってes2015のものとes5のものが混ざってるんですかね?もしそうならminifyのとき問題でそう。
そろそろブラウザもes2015に対応してきたし外部ライブラリもes2015でいいんじゃないかと思いましたがまだまだes5のほうがいいんですかねー
外部ライブラリとして別にパッケージを作ってnpm linkしていたんですが
その外部ライブラリのtsconfigの設定でtargetをes2015にしていたのが原因のようです。
npm上で公開してるライブラリってes2015のものとes5のものが混ざってるんですかね?もしそうならminifyのとき問題でそう。
そろそろブラウザもes2015に対応してきたし外部ライブラリもes2015でいいんじゃないかと思いましたがまだまだes5のほうがいいんですかねー
629デフォルトの名無しさん
2017/04/28(金) 15:19:33.29ID:ZmVIrkLy Announcing TypeScript 2.3
https://blogs.msdn.microsoft.com/typescript/2017/04/27/announcing-typescript-2-3/
https://blogs.msdn.microsoft.com/typescript/2017/04/27/announcing-typescript-2-3/
630デフォルトの名無しさん
2017/04/28(金) 21:52:24.09ID:CfPEmNk9 >>628
ちゃんと設定すれば、TypeScriptが変換してくれるんじゃないの?
ちゃんと設定すれば、TypeScriptが変換してくれるんじゃないの?
631デフォルトの名無しさん
2017/04/29(土) 00:20:26.49ID:Ix6JNrOr >>630
targetをes5にしてlibに”dom”と”es2017”を設定したら
ちゃんとminifyもできつつasync await とかobject.assaignとか使えました。
typescriptの問題というよりuglify-jsの問題ってことすね。
targetをes5にしてlibに”dom”と”es2017”を設定したら
ちゃんとminifyもできつつasync await とかobject.assaignとか使えました。
typescriptの問題というよりuglify-jsの問題ってことすね。
632デフォルトの名無しさん
2017/04/29(土) 08:40:51.51ID:fFSdol5k633デフォルトの名無しさん
2017/04/29(土) 09:01:35.78ID:fFSdol5k アンインストールしたらVSでtsファイル開いても識別子の色分けとかインテリセンスが出てこなくなってVSぶっ壊れたわ
再インストールだなこりゃ
再インストールだなこりゃ
634デフォルトの名無しさん
2017/04/29(土) 09:05:24.76ID:fFSdol5k 2.3アンインストール後に再度2.3インストールしてもぶっ壊れたまま
迂闊に入れないほうがいいなこれ
迂闊に入れないほうがいいなこれ
635デフォルトの名無しさん
2017/04/29(土) 14:53:43.74ID:D/W8thCK 馬鹿には無理
636デフォルトの名無しさん
2017/04/30(日) 09:24:14.29ID:V5NYhrdd 不細工ハゲが偉そうに
637デフォルトの名無しさん
2017/04/30(日) 11:46:36.73ID:A3RU6CWl 不細工じゃねーし!
638デフォルトの名無しさん
2017/04/30(日) 12:00:27.54ID:0Jw8BHIT 相対パスでimportしようとすると from ’../../lib/a’ と書くことが多いのですが
..を何とかしようと思いtsconfigでbaseUrlを設定したところ
from ‘lib/a’とかけるようになって素敵だったんですが
生成したjs側で同じように相対パスを使わない方法にできずjs側からimportできなくなりました。
どうすればいいんですかね
..を何とかしようと思いtsconfigでbaseUrlを設定したところ
from ‘lib/a’とかけるようになって素敵だったんですが
生成したjs側で同じように相対パスを使わない方法にできずjs側からimportできなくなりました。
どうすればいいんですかね
639デフォルトの名無しさん
2017/04/30(日) 12:07:35.75ID:VPr4LyhY deployしてみ
640デフォルトの名無しさん
2017/04/30(日) 13:53:10.60ID:bwYTEyCy おい、>>637に突っ込めよ!
641デフォルトの名無しさん
2017/04/30(日) 14:18:46.56ID:uAfPQWLU ハゲに付ける薬なし
642デフォルトの名無しさん
2017/05/01(月) 13:56:45.49ID:1hc/XS6U jsonのデシリアライズ等で得られた任意のオブジェクトが指定のinterfaceに適合するかどうか
簡単に判定する方法ってないでしょうか?
実行コストがかかるのはしょうがないので、npmのライブラリでもあれば助かります。
簡単に判定する方法ってないでしょうか?
実行コストがかかるのはしょうがないので、npmのライブラリでもあれば助かります。
643デフォルトの名無しさん
2017/05/01(月) 14:12:45.68ID:y6q+iQAV 実行時に型情報は取得できないので無理
644デフォルトの名無しさん
2017/05/01(月) 14:56:45.23ID:dX7m944z >>642
俺は各interfaceの定義にtypeを入れてる。
俺は各interfaceの定義にtypeを入れてる。
645デフォルトの名無しさん
2017/05/01(月) 15:43:26.17ID:FD8bdV22 >>642
あーなるほどtypesciptのinterface要件を満たしてるかチェックするライブラリかー。
interfaceに対するメタプログラミングができる仕組みってtypescript側に用意されてんのかな
あーなるほどtypesciptのinterface要件を満たしてるかチェックするライブラリかー。
interfaceに対するメタプログラミングができる仕組みってtypescript側に用意されてんのかな
646デフォルトの名無しさん
2017/05/01(月) 16:42:03.86ID:y6q+iQAV ランゲージサービスから情報引っ張ってコード生成するまでやればできる
647デフォルトの名無しさん
2017/05/01(月) 18:22:52.40ID:s/VndsAg648デフォルトの名無しさん
2017/05/01(月) 22:27:57.85ID:1hc/XS6U >>643-647
回答ありがとうございます。
外部から入手したany型のオブジェクトに対して、一度型チェックしたらTypeGuardの下で
扱えたら便利だと思ったんですが、そう単純なものはなさそうですね。
interface毎にUser-Defined Type Guard Functionてのを用意するのが今のところ
いちばんシンプルですかね。
回答ありがとうございます。
外部から入手したany型のオブジェクトに対して、一度型チェックしたらTypeGuardの下で
扱えたら便利だと思ったんですが、そう単純なものはなさそうですね。
interface毎にUser-Defined Type Guard Functionてのを用意するのが今のところ
いちばんシンプルですかね。
649デフォルトの名無しさん
2017/05/01(月) 23:04:54.13ID:FD8bdV22650デフォルトの名無しさん
2017/05/02(火) 00:15:01.17ID:79+IkLPk JSON限定でいいならJSON Schema生成するだけじゃね
651デフォルトの名無しさん
2017/05/05(金) 00:50:33.95ID:oXL5lOIH webpackでtypescript使う時にts-loaderがtypeRootsオプションを認識してくれないような。
自作の定義ファイルを読みに行ってくれない。
結局nodes_modules/@types/においたらうごくんだけど。なんだかなぁ
自作の定義ファイルを読みに行ってくれない。
結局nodes_modules/@types/においたらうごくんだけど。なんだかなぁ
652デフォルトの名無しさん
2017/05/05(金) 10:24:07.07ID:E/UcmmKD -g
653デフォルトの名無しさん
2017/05/07(日) 12:47:49.44ID:tRHTfDHo redux のreducer書く時型付きじゃないと死ぬ。
素のjsでよく書ける人いるなぁ
素のjsでよく書ける人いるなぁ
654デフォルトの名無しさん
2017/05/10(水) 22:53:30.65ID:TahTqR8d655デフォルトの名無しさん
2017/05/11(木) 06:23:41.84ID:6GcWGmCe JSON Schemaの方が表現力がずっと高いから、
実用的に意味があるのは後者だろうね
型だけなら全部空文字と0とfalseでもいいんだから
実用的に意味があるのは後者だろうね
型だけなら全部空文字と0とfalseでもいいんだから
656デフォルトの名無しさん
2017/05/11(木) 06:40:52.39ID:Uo4oHcSP JSON Schemaからのdts生成は既存のツールがいくつかあるみたいだな
逆はバリデーションとしてはほぼ無意味かと
逆はバリデーションとしてはほぼ無意味かと
657デフォルトの名無しさん
2017/05/11(木) 21:37:19.65ID:Foo76VTo 目的が上で書いているようにシリアライズ-デシリアライズされたオブジェクトの型の復元なら、
interface定義を自分で書いてschemaは裏方というのが自然だとは思うが。
ただ、schemaを生成する方のツールは技術的にハードルが高いせいか選択肢があまりないな。
interface定義を自分で書いてschemaは裏方というのが自然だとは思うが。
ただ、schemaを生成する方のツールは技術的にハードルが高いせいか選択肢があまりないな。
658デフォルトの名無しさん
2017/05/15(月) 21:27:32.04ID:ZdTGw5ha そもそもシリアライズという発想自体がJavaScript的でないと思うけどね
データスキーマから入るのがJSでしょ
データスキーマから入るのがJSでしょ
659デフォルトの名無しさん
2017/05/15(月) 22:43:08.64ID:JDFIgPdx シリアライズってJSONのこと言ってるわけだろ。
言語自体にサポートの無いC++などと比べてもよっぽど馴染みがあると思うが。
で、JavaScriptだとそこまででいいんだけど、TypeScriptで型まで戻すにはどうするか?って話だろ。
言語自体にサポートの無いC++などと比べてもよっぽど馴染みがあると思うが。
で、JavaScriptだとそこまででいいんだけど、TypeScriptで型まで戻すにはどうするか?って話だろ。
660デフォルトの名無しさん
2017/05/15(月) 23:00:01.30ID:ZdTGw5ha バリデーションとシリアライズが別系統なのは煩雑じゃない?
コードだけで全部定義するならアノテーション使うなりしてJSON Schema相当の表現力は欲しいし、
割り切って別にするならシリアライズ系の方は中途半端なバリデーションなんかいっそ無しにて
ノーチェックでいいと思うよ
コードだけで全部定義するならアノテーション使うなりしてJSON Schema相当の表現力は欲しいし、
割り切って別にするならシリアライズ系の方は中途半端なバリデーションなんかいっそ無しにて
ノーチェックでいいと思うよ
661デフォルトの名無しさん
2017/05/15(月) 23:16:34.01ID:JDFIgPdx うん、上から目線で何か言いたいという気持ちだけは伝わった。
662デフォルトの名無しさん
2017/05/15(月) 23:59:53.11ID:5dbS9yKw http://stackoverflow.com/questions/33800497/check-if-an-object-implements-an-interface-at-runtime-with-typescript
Yesの回答にそれっぽいコードがあるが本当に動作するのか疑問。
他はSchemaを使う回答だが、よほどでないと大袈裟な気も。
Yesの回答にそれっぽいコードがあるが本当に動作するのか疑問。
他はSchemaを使う回答だが、よほどでないと大袈裟な気も。
663デフォルトの名無しさん
2017/05/16(火) 00:46:18.76ID:6a8gh5yc 自分でコンパイラ拡張して実装したみたいだけどこういうの本家の更新についてけずに陳腐化するのが常だから使えない
ついでにビルドツールなどのエコシステムも使えない
ついでにビルドツールなどのエコシステムも使えない
664デフォルトの名無しさん
2017/05/16(火) 07:36:06.00ID:MR0lnxJG 正攻法だとanyを受け取って目的の型のオブジェクトにして返す関数を用意することになるんだろうが、
やることは同じようなものなのにそれぞれ型ごとに個別に用意しなければならないのが煩雑だな。
よっぽど重要な型でしかやりたくない感じ。
確かにこれが、型ガードの感覚で気軽に使えるようになったら便利だと思うけど。
やることは同じようなものなのにそれぞれ型ごとに個別に用意しなければならないのが煩雑だな。
よっぽど重要な型でしかやりたくない感じ。
確かにこれが、型ガードの感覚で気軽に使えるようになったら便利だと思うけど。
665デフォルトの名無しさん
2017/05/16(火) 08:02:09.48ID:64KrDfHK TypeScriptの思想的にもスキーマありきで型は後付けの方が自然だと思うわ
666デフォルトの名無しさん
2017/05/16(火) 08:27:24.80ID:MR0lnxJG その「スキーマ」が何を指しているかよくわからんな。
まさか「JSON schemaありき」って言いたいわけじゃないだろうが。
まさか「JSON schemaありき」って言いたいわけじゃないだろうが。
667デフォルトの名無しさん
2017/05/16(火) 09:01:29.19ID:64KrDfHK668デフォルトの名無しさん
2017/05/16(火) 10:11:34.64ID:Jgr59aIg objectを先に設計してstringifyの方が一般的だと思うが。
つまりtsなら型が先。
つまりtsなら型が先。
669デフォルトの名無しさん
2017/05/16(火) 13:21:49.91ID:xkpWN83w jsonに対するinterface適用にわざわざスキーマ使うのはだるいな。
やはりメンバにtypeとかを事前に追加しておいて、そこを見てキャストさせるほうが楽だわ。もちろんそのjson自体が自分で改変可能である必要はあるが。
やはりメンバにtypeとかを事前に追加しておいて、そこを見てキャストさせるほうが楽だわ。もちろんそのjson自体が自分で改変可能である必要はあるが。
670デフォルトの名無しさん
2017/05/16(火) 13:49:23.26ID:6a8gh5yc 言語がサポートしてるのはその使い方だからな
671デフォルトの名無しさん
2017/05/16(火) 14:24:04.58ID:KRJlMJox TypeScript ⇔ JSONSchema を相互に変換するコードは既に転がってるから
どちらでも好みで原本にすれば良いんじゃないの?
まぁあまり自動化を頑張っても、構造が複雑になると結局手書きが必要になる分野だとは思うけど
どちらでも好みで原本にすれば良いんじゃないの?
まぁあまり自動化を頑張っても、構造が複雑になると結局手書きが必要になる分野だとは思うけど
672デフォルトの名無しさん
2017/05/16(火) 14:48:54.41ID:64KrDfHK 型で記述しきれないバリデーションについてはDecoratorsを使うのがベストなんだろうけど、
interfaceには使えないんだよな
まあJSONだけならそれでもいいかもしれないが
interfaceには使えないんだよな
まあJSONだけならそれでもいいかもしれないが
673デフォルトの名無しさん
2017/05/16(火) 15:28:34.19ID:6a8gh5yc リリースノートも見ずにオレオレソリューションひねり出すのやめない?
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#tagged-union-types
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#tagged-union-types
674デフォルトの名無しさん
2017/05/16(火) 15:33:13.80ID:4P1sgrCm interfaceがトランスパイル後に消滅しちゃうの辛いよな。
言語機能でいい感じに残す機能つけてほしいが、そういう提案ってないの?
最近ついたというプラグインで可能になる?
言語機能でいい感じに残す機能つけてほしいが、そういう提案ってないの?
最近ついたというプラグインで可能になる?
675デフォルトの名無しさん
2017/05/16(火) 15:42:38.42ID:6a8gh5yc >>662で公式で却下されたと書いてある
まあESの仕様壊すし残当
まあESの仕様壊すし残当
676デフォルトの名無しさん
2017/05/16(火) 15:48:01.77ID:KRJlMJox677デフォルトの名無しさん
2017/05/16(火) 16:10:10.21ID:6a8gh5yc いや関数に隠蔽すれば壊すまではいかんか
>>676
入力データの検査も値レベルの制約も手でやること
型システムに求めることじゃない
型を信じてノーチェックが型安全でありそうでなければオーバーヘッドで死ぬ
本人もタイプガードで満足してるしそれが正解
>>676
入力データの検査も値レベルの制約も手でやること
型システムに求めることじゃない
型を信じてノーチェックが型安全でありそうでなければオーバーヘッドで死ぬ
本人もタイプガードで満足してるしそれが正解
678デフォルトの名無しさん
2017/05/16(火) 17:11:36.85ID:rTo/YyDO >>675
まぁESの仕様+型だけだから学習コストが低いってのはあるしね。 でも直感的にinterface定義が消えちゃうのはなんだかなぁって気はする。
こうなったらES側に頑張ってもらうしかないな。パターンマッチング付けてー
まぁESの仕様+型だけだから学習コストが低いってのはあるしね。 でも直感的にinterface定義が消えちゃうのはなんだかなぁって気はする。
こうなったらES側に頑張ってもらうしかないな。パターンマッチング付けてー
679デフォルトの名無しさん
2017/05/29(月) 18:33:36.63ID:DGY6L2yw >>651
コレが解決した。
悩んでいつつも暫定対処で乗り切ってただけに小骨が喉に刺さっているような気分でしたわ。
結論としてはtypeRootsオプションは/// <reference types=".." />
を使う時のpath解決でしか使わないって。
ハンドブックをどう読んでもそう書いているように見えない。
コレが解決した。
悩んでいつつも暫定対処で乗り切ってただけに小骨が喉に刺さっているような気分でしたわ。
結論としてはtypeRootsオプションは/// <reference types=".." />
を使う時のpath解決でしか使わないって。
ハンドブックをどう読んでもそう書いているように見えない。
680デフォルトの名無しさん
2017/06/02(金) 03:21:08.54ID:0selKGQ0 typescriptでimmutablejs使ってるけどいまいち恩恵を得づらい。
updateInとかパスが補完効いたり出来ればいいのに
updateInとかパスが補完効いたり出来ればいいのに
681デフォルトの名無しさん
2017/06/02(金) 08:57:46.98ID:vyfZNbsR thisを変数に入れたいときの変数名ってみんな何してる?
_thisが使えればいいんだけどなー
_thisが使えればいいんだけどなー
682デフォルトの名無しさん
2017/06/02(金) 09:08:17.58ID:Ef+/+PyI 変数に入れた後のthisはthisなんですか・・・・?
683デフォルトの名無しさん
2017/06/02(金) 09:09:32.94ID:lCCVb2h3 thatだがそもそもそんなこと必要にならない
684デフォルトの名無しさん
2017/06/02(金) 09:20:29.61ID:8OnrstJc JavaScriptのクロージャにおけるthis問題の回避はselfが定番
TypeScriptで必要なケースは少ないはずだけど
TypeScriptで必要なケースは少ないはずだけど
685デフォルトの名無しさん
2017/06/02(金) 09:43:18.53ID:LceXbV2F >>681
_thisはダメなの?
_thisはダメなの?
686デフォルトの名無しさん
2017/06/02(金) 10:31:35.82ID:QxLZOlf9 _thisは重複エラーになっちゃうんでやすよね
目的としては、deferredを返すfunctionがあって、その返り値のdoneで呼び元のthisを使いたいんです
目的としては、deferredを返すfunctionがあって、その返り値のdoneで呼び元のthisを使いたいんです
687デフォルトの名無しさん
2017/06/02(金) 11:16:51.90ID:Ef+/+PyI やりたいことが分からん
コード例plz
コード例plz
688デフォルトの名無しさん
2017/06/02(金) 11:38:44.20ID:lCCVb2h3 アロー関数で済むやつでは
689デフォルトの名無しさん
2017/06/02(金) 12:13:45.27ID:QxLZOlf9 >>687
var testFucntion = () => {
var defer = $.Deferred();
defer.resolve("a");
return defer.promise();
}
var hoge: string;
testFucntion()
.done(function (data: string) {
this.hoge(data);
})
こんな感じ
var testFucntion = () => {
var defer = $.Deferred();
defer.resolve("a");
return defer.promise();
}
var hoge: string;
testFucntion()
.done(function (data: string) {
this.hoge(data);
})
こんな感じ
690デフォルトの名無しさん
2017/06/02(金) 12:15:24.11ID:Ef+/+PyI691デフォルトの名無しさん
2017/06/02(金) 12:17:24.53ID:lCCVb2h3 草www
692デフォルトの名無しさん
2017/06/02(金) 12:20:14.11ID:jbvcqQ/c 自演乙としか
693デフォルトの名無しさん
2017/06/02(金) 23:52:05.01ID:7H2+/kur functionが自然な場所は、アローにしてて、
アローで解決できる箇所はfunctionなのはなぜ。
アローで解決できる箇所はfunctionなのはなぜ。
694デフォルトの名無しさん
2017/06/03(土) 02:14:50.79ID:QIr3+kxI >>689
doneのほうをアロー式にしたらいいんやで
あとvsで開発してる場合、デバッグ時にウォッチしたとき、そのthisにはtestFucntionが入るけど
実際にはちゃんと使いたい値が入ってるから安心しな
doneのほうをアロー式にしたらいいんやで
あとvsで開発してる場合、デバッグ時にウォッチしたとき、そのthisにはtestFucntionが入るけど
実際にはちゃんと使いたい値が入ってるから安心しな
695デフォルトの名無しさん
2017/06/03(土) 09:18:06.31ID:bm3mvh5f アロー使えばselfいらないって知った時感動した
696デフォルトの名無しさん
2017/06/04(日) 01:06:25.77ID:ioiT3hTG Angular(2以降)の話題もここでよろしょうございますか?
697デフォルトの名無しさん
2017/06/04(日) 02:05:52.05ID:fuFkI60h まったくではないが違うんじゃないか?
698デフォルトの名無しさん
2017/06/04(日) 05:58:20.77ID:xlmC5HkR699デフォルトの名無しさん
2017/06/11(日) 19:15:01.32ID:AskXGu9A interface A{
x:string;
y:string;
}
interface B extends A{
x:number;
}
が型の互換性エラーになるの何とかならない?
let a={x:'hoge',y:'foo'};
let b={...a,{x:1}};
みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い
x:string;
y:string;
}
interface B extends A{
x:number;
}
が型の互換性エラーになるの何とかならない?
let a={x:'hoge',y:'foo'};
let b={...a,{x:1}};
みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い
700デフォルトの名無しさん
2017/06/11(日) 19:18:40.94ID:AskXGu9A >>696
ngxのスレは別にある
ngxのスレは別にある
701デフォルトの名無しさん
2017/06/11(日) 19:55:36.52ID:AskXGu9A702デフォルトの名無しさん
2017/06/11(日) 20:29:27.66ID:zURolSWc >>699
型が変わったら継承できないのは当たり前では?
interface Parent {
x: string | number;
y: string;
}
interface A extends Parent {
x: string;
}
interface B extends Parent {
x: number;
}
こういう関係が正しい関係では?
型が変わったら継承できないのは当たり前では?
interface Parent {
x: string | number;
y: string;
}
interface A extends Parent {
x: string;
}
interface B extends Parent {
x: number;
}
こういう関係が正しい関係では?
703デフォルトの名無しさん
2017/06/11(日) 21:09:00.82ID:y28miZDE 理解してない奴を炙り出すのにも静的チェックは必要なんやなって
704デフォルトの名無しさん
2017/06/11(日) 21:21:16.05ID:QZNztTAY >>702
プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする
アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど
プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする
アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど
705デフォルトの名無しさん
2017/06/11(日) 22:09:32.03ID:AskXGu9A706デフォルトの名無しさん
2017/06/11(日) 22:13:08.61ID:QZNztTAY >>705
ジェネリクスあるし上書きする構文が必要になる状況が分からん
ジェネリクスあるし上書きする構文が必要になる状況が分からん
707デフォルトの名無しさん
2017/06/11(日) 22:22:11.45ID:eD+QASKK 上書きなんぞせずとも別の名前付ければよくね?
デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ
デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ
708デフォルトの名無しさん
2017/06/11(日) 23:47:19.06ID:fVYgJSKO extends Aじゃないけどその定義を流用してBを定義したいということか?
709デフォルトの名無しさん
2017/06/11(日) 23:48:25.17ID:AskXGu9A >>708
そういう事
そういう事
710デフォルトの名無しさん
2017/06/11(日) 23:49:49.29ID:AskXGu9A B extends Aじゃないから当然
(hoge:B)=>{
let foo:A=hoge;
}
みたいな事は出来なくて良い(というか出来ない)
(hoge:B)=>{
let foo:A=hoge;
}
みたいな事は出来なくて良い(というか出来ない)
711デフォルトの名無しさん
2017/06/12(月) 00:58:34.90ID:F6aJQHtJ 継承じゃないんだから諦めてジェネリクス使いなよ
712デフォルトの名無しさん
2017/06/12(月) 08:01:38.24ID:9hAA1jJ7 世の中にxがstringかnumberの場合があるのなら、x: string | number という定義が正しい気がしますが
713デフォルトの名無しさん
2017/06/12(月) 08:11:52.28ID:R1uj6Z8h ジェネリクスだと>>699の問題がどこまで解決できるんだろう。
714デフォルトの名無しさん
2017/06/12(月) 08:26:45.30ID:vVucOmau >>713
interface X<T> {
x: T;
y: string;
}
interface A extends X<string> { }
interface B extends X<number> { }
interface X<T> {
x: T;
y: string;
}
interface A extends X<string> { }
interface B extends X<number> { }
715デフォルトの名無しさん
2017/06/12(月) 18:05:51.91ID:i2S9/2aT flowとtypescriptって
どっちが良いの?
どっちが良いの?
716デフォルトの名無しさん
2017/06/12(月) 18:14:08.97ID:/bUB16QZ717デフォルトの名無しさん
2017/06/12(月) 21:00:25.44ID:5UNDPLtW 酔うの早すぎるだろ
718デフォルトの名無しさん
2017/06/13(火) 22:10:43.81ID:PMWJJsvl Announcing TypeScript 2.4 RC
https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
719デフォルトの名無しさん
2017/06/14(水) 08:28:34.92ID:TtxDPC/b enumってstring literal型出てからほぼ使わなくなったからなあ
コード内でimportできるのもよくわからん
何がよくなったんだ
コード内でimportできるのもよくわからん
何がよくなったんだ
720デフォルトの名無しさん
2017/06/14(水) 09:04:40.52ID:t483F9YG 新importは関数であることに意味がある
721デフォルトの名無しさん
2017/06/14(水) 21:28:45.57ID:YgZhsY+k >>720
なるほど Promiseで返すってことはasync await 前提なんかな。
ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから
一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。
なるほど Promiseで返すってことはasync await 前提なんかな。
ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから
一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。
722デフォルトの名無しさん
2017/06/14(水) 21:29:54.91ID:YgZhsY+k jsの仕様変更そろそろ収まって欲しい。
import周りってこれで安定するようになるのかな。
import周りってこれで安定するようになるのかな。
723デフォルトの名無しさん
2017/06/15(木) 19:20:45.69ID:Zba3QY3O filterの中でasync await って使えないんですかね?
724デフォルトの名無しさん
2017/06/15(木) 19:24:11.68ID:xqojsLNP725デフォルトの名無しさん
2017/06/15(木) 21:25:19.64ID:Zba3QY3O filterの評価関数を作ろうとした時に、今まで作ったやつが全部プロミス返す設計になっていたので、
シームレスに使おうとしたらasync-awaitを使えないかなーと。
将来的にここもasync await使えるようになるのかな。
結局ループを回して絞込処理を実装しましたわ。
シームレスに使おうとしたらasync-awaitを使えないかなーと。
将来的にここもasync await使えるようになるのかな。
結局ループを回して絞込処理を実装しましたわ。
726デフォルトの名無しさん
2017/06/15(木) 21:30:12.69ID:xqojsLNP rxjs使え
727デフォルトの名無しさん
2017/06/15(木) 21:32:03.12ID:xqojsLNP それか自作。そんなに難しくないぞ
728デフォルトの名無しさん
2017/06/16(金) 01:22:09.50ID:uNQVqIhb rx推しが謎すぎる。
729デフォルトの名無しさん
2017/06/16(金) 07:51:13.34ID:VSZ6CfqO ループでawaitしちゃうってパフォーマンス悪くない?
await promise.all([].map(async () => {}))
こういうのが普通では?
await promise.all([].map(async () => {}))
こういうのが普通では?
730デフォルトの名無しさん
2017/06/16(金) 12:37:39.06ID:uNQVqIhb >>729
ずっとpromise.allの存在を失念してた。
これでmap的な使い方できるね。
ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで
自動でimportする設定ってtsconfigにないかな?
ずっとpromise.allの存在を失念してた。
これでmap的な使い方できるね。
ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで
自動でimportする設定ってtsconfigにないかな?
731デフォルトの名無しさん
2017/06/17(土) 10:56:23.79ID:254ieyWi typescript便利だけどやっぱり型が後付の弊害がなかなかしんどい。
nullを許容しない前提かと思って使っても結局
実体はnullが突っ込んであったり する。
nullを許容しない前提かと思って使っても結局
実体はnullが突っ込んであったり する。
732デフォルトの名無しさん
2017/06/17(土) 17:32:41.06ID:Jhwo6DZg 弊害じゃなくて人為的ミス
誤りに気付いた者が正せばいい
誤りに気付いた者が正せばいい
733デフォルトの名無しさん
2017/06/17(土) 22:27:47.68ID:254ieyWi swaggerのジェネレーターが出すコードなんだよね。プルリク出すのが面倒です
734デフォルトの名無しさん
2017/06/18(日) 00:50:13.20ID:GScuub4f サーバーサイドの言語仕様とswaggerがstrict null checkに対応してないだけであって
typescriptは何も悪くないのでは
typescriptは何も悪くないのでは
735デフォルトの名無しさん
2017/06/18(日) 15:17:38.51ID:xPH4G83l ほんそれ
736デフォルトの名無しさん
2017/06/18(日) 20:34:02.75ID:9Ms8Oqe4 >>734
本体がstrict null check対応しても
モジュール側が対応してないとそこは無視するってことです?
例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね
本体がstrict null check対応しても
モジュール側が対応してないとそこは無視するってことです?
例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね
737デフォルトの名無しさん
2017/06/19(月) 00:15:28.42ID:2IBzsU2g type Action =
{
type: “A”,
id: number
} |
{
type: “B”,
payload: any
} ….
みたいな定義がある時に
interface ALias {
[type: Action.type]: () => any;
}
export default <Alias> {
“A”: func1,
“B”: func2,
}
みたいに書けないですかね?
つまりAction.typeをinterface の条件に入れたいってことなんですが。
{
type: “A”,
id: number
} |
{
type: “B”,
payload: any
} ….
みたいな定義がある時に
interface ALias {
[type: Action.type]: () => any;
}
export default <Alias> {
“A”: func1,
“B”: func2,
}
みたいに書けないですかね?
つまりAction.typeをinterface の条件に入れたいってことなんですが。
738デフォルトの名無しさん
2017/06/19(月) 09:56:19.65ID:nrLP7Uu1 インデックスシグネチャがstringかnumberしか受け入れない現状では
Aliasを定義する時点でキー(Action.typeの値)が
分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; }
分からないなら interface Alias { [type: string]: Func; }
Aliasを定義する時点でキー(Action.typeの値)が
分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; }
分からないなら interface Alias { [type: string]: Func; }
739デフォルトの名無しさん
2017/06/19(月) 20:30:47.90ID:8qDOjcU2 >>730
interface Actions {
A: {id: number};
B: {payload: any}
}
interface Arias {[key in keyof Actions]: () => Actions[key]}
こういうことかな?
interface Actions {
A: {id: number};
B: {payload: any}
}
interface Arias {[key in keyof Actions]: () => Actions[key]}
こういうことかな?
740デフォルトの名無しさん
2017/06/19(月) 21:29:43.40ID:GKod7M3S 携帯から書いたけどエラー起きてるし意図理解できてなかった。
こういうことかな?
type Action = { type: "A" } | {type: "B"};
type Arias = {[K in Action["type"]]: () => void}
http://i.imgur.com/17xtAlw.png
こういうことかな?
type Action = { type: "A" } | {type: "B"};
type Arias = {[K in Action["type"]]: () => void}
http://i.imgur.com/17xtAlw.png
741デフォルトの名無しさん
2017/06/19(月) 22:19:36.13ID:p+TikfUB Arias(笑)
742デフォルトの名無しさん
2017/06/20(火) 16:14:46.75ID:Nl8VP77v743デフォルトの名無しさん
2017/06/21(水) 12:13:37.61ID:qahQSwg3744デフォルトの名無しさん
2017/06/21(水) 14:47:30.10ID:CAzvCkNY >>743
定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。
あとReactというかReduxつかってて合わせてimmutable.js使ってると
いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから
しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。
結局reducer内で使う時にjsonからimmuatblejsのclassに変換して
state返す時にjsonに戻す処理を毎回入れる方針になった。
immutable.jsは全然typescriptと相性が良くない。
XXX.set(‘member’, value) みたいな構文になるから。
もっとtypescriptで使いやすいimmutableなライブラリないかしら。
定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。
あとReactというかReduxつかってて合わせてimmutable.js使ってると
いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから
しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。
結局reducer内で使う時にjsonからimmuatblejsのclassに変換して
state返す時にjsonに戻す処理を毎回入れる方針になった。
immutable.jsは全然typescriptと相性が良くない。
XXX.set(‘member’, value) みたいな構文になるから。
もっとtypescriptで使いやすいimmutableなライブラリないかしら。
745デフォルトの名無しさん
2017/06/21(水) 16:08:20.66ID:QjjhDd/n746デフォルトの名無しさん
2017/06/21(水) 19:23:40.28ID:CAzvCkNY747デフォルトの名無しさん
2017/06/21(水) 21:09:26.65ID:nUhsZ0ik >>746
ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。
https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input
ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。
https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input
748デフォルトの名無しさん
2017/06/21(水) 21:50:59.59ID:nUhsZ0ik >>744
immutablejsというのは使ったことないけど、
XXX.set(‘member’, value)みたいな処理もkeyof使ってラップしてあげればkey毎に違う型のvalueに対応できる。
例えばES6のMap<K,V>クラスをラップすれば以下みたいなこともできる。
まあ新しいバージョンで対応されるならわざわざラップクラス作る必要ないがw
class TypeSafeMap...(省略
interface IObject {
name: string;
height: number;
isYes: boolean;
}
const safeMap = new TypeSafeMap<IObject>();
safeMap.get("name") // string型
safeMap.get("height") // number型
safeMap.set("name", 1) // NG
safeMap.set("name", "one") // OK
https://goo.gl/j6hy4T
immutablejsというのは使ったことないけど、
XXX.set(‘member’, value)みたいな処理もkeyof使ってラップしてあげればkey毎に違う型のvalueに対応できる。
例えばES6のMap<K,V>クラスをラップすれば以下みたいなこともできる。
まあ新しいバージョンで対応されるならわざわざラップクラス作る必要ないがw
class TypeSafeMap...(省略
interface IObject {
name: string;
height: number;
isYes: boolean;
}
const safeMap = new TypeSafeMap<IObject>();
safeMap.get("name") // string型
safeMap.get("height") // number型
safeMap.set("name", 1) // NG
safeMap.set("name", "one") // OK
https://goo.gl/j6hy4T
749デフォルトの名無しさん
2017/06/21(水) 22:49:52.97ID:CAzvCkNY750デフォルトの名無しさん
2017/06/22(木) 00:17:25.62ID:u6z6+xvR >>749
それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw
それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw
751デフォルトの名無しさん
2017/06/22(木) 17:18:45.24ID:77+4f1XL >>750
そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。
https://goo.gl/QHZCsG
before
i.addEventListener(‘click’, async (e) => {
after
i.addEventListener('change', async (e) => {
そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。
https://goo.gl/QHZCsG
before
i.addEventListener(‘click’, async (e) => {
after
i.addEventListener('change', async (e) => {
752デフォルトの名無しさん
2017/06/22(木) 18:30:45.28ID:b2Lz7aux753デフォルトの名無しさん
2017/06/22(木) 19:47:44.81ID:77+4f1XL754デフォルトの名無しさん
2017/06/22(木) 20:06:21.77ID:u6z6+xvR755デフォルトの名無しさん
2017/06/24(土) 00:04:21.44ID:7kzB7ca0 typescriptでreduxのミドルウェア書いてる人っていませんか?
export interface Middleware {
<S>(api: MiddlewareAPI<S>): (next: Dispatch<S>) => Dispatch<S>;
}
上記interfaceを満たすコードを書けなくて困ってます。サンプルコード的なのどっかにないですかね?
export interface Middleware {
<S>(api: MiddlewareAPI<S>): (next: Dispatch<S>) => Dispatch<S>;
}
上記interfaceを満たすコードを書けなくて困ってます。サンプルコード的なのどっかにないですかね?
756デフォルトの名無しさん
2017/06/25(日) 15:04:59.28ID:k1gomwYO reduxってreact関係の何かなのかな?
相変わらずreactの作法は意味不明
流行らずに消えてほしい
相変わらずreactの作法は意味不明
流行らずに消えてほしい
757デフォルトの名無しさん
2017/06/25(日) 15:18:46.73ID:dKXT3hQ7 すみません
今パッケージングというのかライブラリのシステムは何を使うのが正解何ですか?
electronやってみようと思ってタイプライブラリをいれようと思っていろいろなサイト見てやってるんですが
どれも失敗します
今の定番の方法を紹介してるサイトってありませんか?
それとも今は時期がまずいんでしょうか?
今パッケージングというのかライブラリのシステムは何を使うのが正解何ですか?
electronやってみようと思ってタイプライブラリをいれようと思っていろいろなサイト見てやってるんですが
どれも失敗します
今の定番の方法を紹介してるサイトってありませんか?
それとも今は時期がまずいんでしょうか?
758デフォルトの名無しさん
2017/06/25(日) 16:41:50.61ID:OCPIhIaN npm -i @types/XXXX
759デフォルトの名無しさん
2017/06/25(日) 17:11:28.11ID:k1gomwYO >>757
よくわからないけどelectronのtypescript開発は少しややこしい
メインプロセス側と画面側でプロジェクト分けるのが主流で、メインプロセス側はgulpビルド、画面側はwebpackビルドみたいになって少しややこしい
よくわからないけどelectronのtypescript開発は少しややこしい
メインプロセス側と画面側でプロジェクト分けるのが主流で、メインプロセス側はgulpビルド、画面側はwebpackビルドみたいになって少しややこしい
760デフォルトの名無しさん
2017/06/25(日) 19:32:19.06ID:o1GCb4AX 回答ありがとうございました
もうしばらく待ってみます
もうしばらく待ってみます
761デフォルトの名無しさん
2017/06/26(月) 10:42:55.52ID:B+I0vs4D >>756
はやっちゃってるんだよなぁ。
React自体は凄くTypeScriptとの親和性は高い。というかむしろ推奨しているくらい。
ただReduxはTypeScriptからどう使えばいいのかよくわからなくて
はやっちゃってるんだよなぁ。
React自体は凄くTypeScriptとの親和性は高い。というかむしろ推奨しているくらい。
ただReduxはTypeScriptからどう使えばいいのかよくわからなくて
762デフォルトの名無しさん
2017/06/26(月) 15:37:27.06ID:B+I0vs4D >>755
自己解決したので書いておきます
ただのロガーの場合
import { Action } from 'actions';
import { State } from 'reducers';
export function myMiddleware(store: redux.MiddlewareAPI<State>):
(next: redux.Dispatch<State>) => redux.Dispatch<State> {
return (next: redux.Dispatch<State>) => (action: Action): Action => {
console.log(store.getState());
let result = next(action);
console.log(store.getState());
return result;
};
}
自己解決したので書いておきます
ただのロガーの場合
import { Action } from 'actions';
import { State } from 'reducers';
export function myMiddleware(store: redux.MiddlewareAPI<State>):
(next: redux.Dispatch<State>) => redux.Dispatch<State> {
return (next: redux.Dispatch<State>) => (action: Action): Action => {
console.log(store.getState());
let result = next(action);
console.log(store.getState());
return result;
};
}
763デフォルトの名無しさん
2017/06/27(火) 16:22:46.76ID:xkXC4vKS typescriptで書かれてる有名なライブラリって何があるの?
Rx.jsはtypeScriptで書かれてたね。
Rx.jsはtypeScriptで書かれてたね。
764デフォルトの名無しさん
2017/06/27(火) 16:42:32.21ID:mpuQzI8/ フレームワークだけどngx
765デフォルトの名無しさん
2017/06/27(火) 18:35:39.52ID:5NUjqPYf Dartどっかいったな
766デフォルトの名無しさん
2017/06/27(火) 19:04:32.75ID:mpuQzI8/ googleが作る言語はゴミばっかだからしゃーない
言語のセンスは圧倒的にMSの方が上
MSというよりヘルスバーグが有能すぎる
言語のセンスは圧倒的にMSの方が上
MSというよりヘルスバーグが有能すぎる
767デフォルトの名無しさん
2017/06/27(火) 22:13:14.24ID:xkXC4vKS768デフォルトの名無しさん
2017/06/27(火) 22:20:02.75ID:rQeMEWtY J++とかJ#とかManaged C++とか割と救いようのないものも作ってるけどねMicrosoft
でも全体としては確かに良い言語が多い印象
Googleの言語もGoとか(使ったことないけど)人気みたいだし, そもそも作った言語の数が大分違う気が
でも全体としては確かに良い言語が多い印象
Googleの言語もGoとか(使ったことないけど)人気みたいだし, そもそも作った言語の数が大分違う気が
769デフォルトの名無しさん
2017/06/27(火) 23:37:36.64ID:mpuQzI8/ >>767
ジェネリクス追加されるまでは様子見…
ジェネリクス追加されるまでは様子見…
770デフォルトの名無しさん
2017/06/28(水) 03:33:15.38ID:4SuBLGV6 マイクロソフトはvsc出したときはなんでatomの二番煎じやってんのって思ったけどやはり製品としての完成度高くて感動する。
開発環境作らせたら最強と言う噂は伊達じゃない。
開発環境作らせたら最強と言う噂は伊達じゃない。
771デフォルトの名無しさん
2017/06/28(水) 09:12:54.31ID:9HmGLvwZ >>763
angular2
angular2
772デフォルトの名無しさん
2017/06/28(水) 14:22:19.39ID:R0ZTQr0d Announcing TypeScript 2.4
https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/
https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/
773デフォルトの名無しさん
2017/06/28(水) 16:15:00.25ID:7uiFkJf0 MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い
ネットや機械学習ならGoogle
アップルは…嫌い
774デフォルトの名無しさん
2017/06/28(水) 16:19:23.04ID:DxMay05+ MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い
ネットや機械学習ならGoogle
アップルは…嫌い
775デフォルトの名無しさん
2017/06/28(水) 16:28:12.57ID:7uiFkJf0 >>774
何こいつ怖い
何こいつ怖い
776デフォルトの名無しさん
2017/06/29(木) 16:13:29.70ID:f9ij8X2q すいません。
例えば以下のようにアクションを定義してあったとして
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING'
};
ジェスリクスの仕組みを使って
type ActionType = 'FETCH_MAIN_FEEDS' | 'SET_MAIN_FFEDS' | 'DO_NOTHING'
をActionの内容変更に合わせて自動的に作る方法ってないですかね
例えば以下のようにアクションを定義してあったとして
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING'
};
ジェスリクスの仕組みを使って
type ActionType = 'FETCH_MAIN_FEEDS' | 'SET_MAIN_FFEDS' | 'DO_NOTHING'
をActionの内容変更に合わせて自動的に作る方法ってないですかね
777デフォルトの名無しさん
2017/06/29(木) 16:20:59.60ID:f9ij8X2q 自己解決
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
payload: undefined;
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING';
payload: undefined;
};
type ActionType = Action['type'];
type PayloadType = Action['payload'];
思いの外簡単であった
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
payload: undefined;
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING';
payload: undefined;
};
type ActionType = Action['type'];
type PayloadType = Action['payload'];
思いの外簡単であった
778デフォルトの名無しさん
2017/07/10(月) 13:26:30.50ID:gqDySAuG typescriptのエラーってよくわかんないことある
(81,32): error TS2322: Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Route> & Readonly<{ children?: ReactNode; }> & Rea...'.
Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'Readonly<RouteProps>'.
Types of property 'component' are incompatible.
Type 'typeof Logout' is not assignable to type 'StatelessComponent<RouteComponentProps<any> | undefined> | ComponentClass<RouteComponentProps<any...'.
Type 'typeof Logout' is not assignable to type 'ComponentClass<RouteComponentProps<any> | undefined>'.
ってでて、何のことかわからない。
偶然解決して、総合するとReact.Componet<P,S>のSをvoidに指定は駄目ってことらしい。
上記エラーメッセージからどう読み取ればそういうことなわけ?
(81,32): error TS2322: Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Route> & Readonly<{ children?: ReactNode; }> & Rea...'.
Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'Readonly<RouteProps>'.
Types of property 'component' are incompatible.
Type 'typeof Logout' is not assignable to type 'StatelessComponent<RouteComponentProps<any> | undefined> | ComponentClass<RouteComponentProps<any...'.
Type 'typeof Logout' is not assignable to type 'ComponentClass<RouteComponentProps<any> | undefined>'.
ってでて、何のことかわからない。
偶然解決して、総合するとReact.Componet<P,S>のSをvoidに指定は駄目ってことらしい。
上記エラーメッセージからどう読み取ればそういうことなわけ?
779デフォルトの名無しさん
2017/07/10(月) 19:20:13.57ID:lPQJaLkK template登場したての頃のc++みたいだな
780デフォルトの名無しさん
2017/07/12(水) 20:52:57.67ID:iKt9vtZC @typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。
781デフォルトの名無しさん
2017/07/12(水) 21:44:01.43ID:46U9BX05782デフォルトの名無しさん
2017/07/12(水) 22:50:59.04ID:iKt9vtZC リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで
定義を上書きできるということかな。試してみるわ。ありがとう。
定義を上書きできるということかな。試してみるわ。ありがとう。
783デフォルトの名無しさん
2017/07/13(木) 12:11:08.28ID:SeGC5rTL ここでredux-observale薦めてもらったのもあって試してるんだけど
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください
784デフォルトの名無しさん
2017/07/14(金) 00:10:59.94ID:UTvPeefr VS2017は2015と違ってJavaScriptで
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな
785デフォルトの名無しさん
2017/07/14(金) 15:42:06.74ID:AYnLv9ir >>782
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもので
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。
となると元々の定義を修正してしまっても不都合はないと思うんだが。
更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもので
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。
となると元々の定義を修正してしまっても不都合はないと思うんだが。
更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
786デフォルトの名無しさん
2017/07/14(金) 22:07:24.48ID:Ukk3qL4L 「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件
787デフォルトの名無しさん
2017/07/17(月) 02:22:25.78ID:HJdOjxBV モジュール拡張書いてる人っていますか?
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなくなる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなくなる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
788デフォルトの名無しさん
2017/07/17(月) 09:24:35.44ID:3rVoB3WX789デフォルトの名無しさん
2017/07/17(月) 12:07:57.24ID:HJdOjxBV >>788
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。
790デフォルトの名無しさん
2017/07/17(月) 12:30:35.11ID:3rVoB3WX791デフォルトの名無しさん
2017/07/20(木) 13:43:30.16ID:9ngnJ+y5 typescriptってユーザー数多そうなのに
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください
792デフォルトの名無しさん
2017/07/20(木) 15:04:36.06ID:heFqzBlt typescript は google 社員御用達だぞ
ここのレスも 99 割が google 社員のもの
ここのレスも 99 割が google 社員のもの
793デフォルトの名無しさん
2017/07/20(木) 15:14:04.11ID:9ngnJ+y5 MSとgoogleのマリアージュとか最高じゃないかな。
794デフォルトの名無しさん
2017/07/20(木) 17:31:24.01ID:YwOQZRBC >>791
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…
795デフォルトの名無しさん
2017/07/20(木) 20:56:24.88ID:9ngnJ+y5 >>794
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。
796デフォルトの名無しさん
2017/07/28(金) 10:18:51.65ID:O7VztC89797デフォルトの名無しさん
2017/07/28(金) 21:08:46.09ID:O7VztC89 typescriptでjest使ってる人っています?
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。
798デフォルトの名無しさん
2017/07/30(日) 23:55:24.33ID:W7NHR4pI es2015とかes2017はどうかな?
async await使えるの幸せ。
async await使えるの幸せ。
799デフォルトの名無しさん
2017/08/03(木) 14:06:03.33ID:GUb8aQei さすが俺達のTypeScript
TypeScripts Type System is Turing Complete
https://github.com/Microsoft/TypeScript/issues/14833
TypeScripts Type System is Turing Complete
https://github.com/Microsoft/TypeScript/issues/14833
800デフォルトの名無しさん
2017/08/03(木) 19:19:00.00ID:WxFDmNeE801デフォルトの名無しさん
2017/08/04(金) 00:27:45.60ID:LmyTNXHn ようやくHTML+CSSに追いついたわけだな
https://cpplover.blogspot.com/2013/10/blog-post_20.html
https://cpplover.blogspot.com/2013/10/blog-post_20.html
802デフォルトの名無しさん
2017/08/12(土) 11:10:59.59ID:3DdLvbHE tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で
こういうエラーが大量に出るようになってしまった。
error TS7016: Could not find a declaration file for module 'モジュール名'.
importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。
こういうエラーが大量に出るようになってしまった。
error TS7016: Could not find a declaration file for module 'モジュール名'.
importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。
803デフォルトの名無しさん
2017/08/12(土) 11:34:41.06ID:DE4QKP9/ >>802
俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?
俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?
804デフォルトの名無しさん
2017/08/12(土) 11:38:02.30ID:DE4QKP9/ あと使ってるライブラリも。ライブラリによって違うのかな?
俺はreduxとかreactとかmoment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。
一応聞くけどwebpack使ってないよね?
俺はreduxとかreactとかmoment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。
一応聞くけどwebpack使ってないよね?
805デフォルトの名無しさん
2017/08/12(土) 11:51:37.20ID:3DdLvbHE このへんのモジュールが引っ掛かった。全部じゃないけど。
react-spin
cookie-parser
uuid-parse
>一応聞くけどwebpack使ってないよね?
そう、webpack使ってる。
module: {
rules: [
{
exclude: /(node_modules)/,
test: /\.[jt]s$/,
use: [ { loader: 'ts-loader', options: { configFileName: "tsconfig.json", } } ]
}
]
},
tsconfig.json はこんな感じ。
{
"compilerOptions": {
"module": "commonjs",
"target": "es6", "allowJs": true, "strictNullChecks": false,
"noImplicitAny": false, "noImplicitThis": true, "noImplicitReturns": true, "sourceMap": true
},
"exclude": [ "node_modules" ]
}
excludeの設定を間違えているのかな?
react-spin
cookie-parser
uuid-parse
>一応聞くけどwebpack使ってないよね?
そう、webpack使ってる。
module: {
rules: [
{
exclude: /(node_modules)/,
test: /\.[jt]s$/,
use: [ { loader: 'ts-loader', options: { configFileName: "tsconfig.json", } } ]
}
]
},
tsconfig.json はこんな感じ。
{
"compilerOptions": {
"module": "commonjs",
"target": "es6", "allowJs": true, "strictNullChecks": false,
"noImplicitAny": false, "noImplicitThis": true, "noImplicitReturns": true, "sourceMap": true
},
"exclude": [ "node_modules" ]
}
excludeの設定を間違えているのかな?
806デフォルトの名無しさん
2017/08/12(土) 15:39:16.07ID:DE4QKP9/ なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない?
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど
807デフォルトの名無しさん
2017/08/12(土) 15:56:35.18ID:DE4QKP9/ webpackのresolveが抜けてるんじゃない?
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},
808デフォルトの名無しさん
2017/08/12(土) 16:09:16.06ID:DE4QKP9/ >react-spin
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。
809デフォルトの名無しさん
2017/08/12(土) 18:30:45.13ID:3DdLvbHE810デフォルトの名無しさん
2017/08/12(土) 19:23:03.92ID:DE4QKP9/ >>809
いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/material-ui-pagination/index.d.ts
これとか参考になると思う
いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/material-ui-pagination/index.d.ts
これとか参考になると思う
811デフォルトの名無しさん
2017/08/12(土) 19:49:53.59ID:3DdLvbHE 最初に書いたとおり、単に数が多いからやってられんてだけ。
812デフォルトの名無しさん
2017/08/12(土) 19:58:06.64ID:DE4QKP9/813デフォルトの名無しさん
2017/08/13(日) 21:25:13.43ID:LJmg41iW (new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど
814デフォルトの名無しさん
2017/08/15(火) 09:46:45.08ID:yLrj+bDi o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?
815デフォルトの名無しさん
2017/08/15(火) 14:18:14.33ID:tN8D0FqC >>814
無理 any型を使ってる時点でtsにできることは無い
無理 any型を使ってる時点でtsにできることは無い
816デフォルトの名無しさん
2017/08/15(火) 14:30:58.84ID:Yyv6Foyi817デフォルトの名無しさん
2017/08/15(火) 15:31:46.37ID:yLrj+bDi818デフォルトの名無しさん
2017/08/15(火) 17:11:17.08ID:tN8D0FqC819デフォルトの名無しさん
2017/08/15(火) 17:54:36.31ID:yLrj+bDi あぁ、eslintって書いたのはtslintの間違い。
>単に変数oにinterface定義してあげればいいだけでは。
ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。
>単に変数oにinterface定義してあげればいいだけでは。
ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。
820デフォルトの名無しさん
2017/08/15(火) 23:34:39.69ID:Yyv6Foyi821デフォルトの名無しさん
2017/08/17(木) 11:02:47.05ID:wX4L2Jep >>820
そうだったね。ごめん
そうだったね。ごめん
822デフォルトの名無しさん
2017/08/22(火) 22:13:44.37ID:/ptFhj0b TSの環境の開発の旗振りって誰?
いつになったら開発環境が安定するの?
webの情報のほとんどが古くて使えない
いつになったら開発環境が安定するの?
webの情報のほとんどが古くて使えない
823デフォルトの名無しさん
2017/08/22(火) 22:37:14.07ID:1PU0SC+v まずVSCodeをインストール
npmでts2.xをインストール
型定義は@types/xxxxxxx
npmでts2.xをインストール
型定義は@types/xxxxxxx
824デフォルトの名無しさん
2017/08/23(水) 13:19:39.56ID:12Hdps1J msで作ってるから、まずはmsの開発環境試してみればいいんだろうけど、
大元の実装が不安定だったりするの?
https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview
大元の実装が不安定だったりするの?
https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview
825デフォルトの名無しさん
2017/08/23(水) 13:23:34.59ID:YtvD4LeH TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし
826デフォルトの名無しさん
2017/08/23(水) 19:59:00.18ID:KTb6BBkr TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。
827デフォルトの名無しさん
2017/08/23(水) 20:36:30.14ID:CbozNT9/ 進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ
出されないってことは・・そういうことだ
828デフォルトの名無しさん
2017/08/25(金) 02:06:21.27ID:+9ilYHDI ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか
https://goo.gl/L6wazS
上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか
https://goo.gl/L6wazS
上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?
829デフォルトの名無しさん
2017/08/25(金) 07:45:31.16ID:HjHZR7Zb 試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。
初期化できないとダメかな。
830デフォルトの名無しさん
2017/08/25(金) 09:42:23.66ID:WV+v2bcZ コンパイル時に型自体の比較が出来ればいいんだけどねぇ
831デフォルトの名無しさん
2017/08/25(金) 12:42:23.60ID:ai11peC4 型がundefinedって言うのは違うのでは?
変数がundefinedならわかるけど考え方の次元が違う気がする
Add<undefined>(item);ってありえないだろ
変数がundefinedならわかるけど考え方の次元が違う気がする
Add<undefined>(item);ってありえないだろ
832デフォルトの名無しさん
2017/08/25(金) 18:31:01.83ID:uvmzLTaY undefinedの型はundefinedだよ
833デフォルトの名無しさん
2017/08/25(金) 21:39:57.29ID:+9ilYHDI >>831
undefined型、null型あります
undefined型、null型あります
834デフォルトの名無しさん
2017/08/26(土) 04:59:29.39ID:FZcG7krL undefined null void never 使い分け出来てる?
835デフォルトの名無しさん
2017/08/27(日) 13:34:52.17ID:0P4eY3kj >>829
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。
実は以下のコードが小さくて見やすいので改造できないか試しているんです。
https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts
store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。
store.dispatch(someAsyncAction.started(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。
実は以下のコードが小さくて見やすいので改造できないか試しているんです。
https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts
store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。
store.dispatch(someAsyncAction.started(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。
836デフォルトの名無しさん
2017/08/27(日) 13:49:39.35ID:0iS30aa2 そもそも何がしたいのかわからないんだけど
引数追加したいけないのか?
引数追加したいけないのか?
837デフォルトの名無しさん
2017/08/27(日) 13:55:46.03ID:0iS30aa2 レス見てなかった
ごめんごめん
ごめんごめん
838デフォルトの名無しさん
2017/08/27(日) 14:17:00.38ID:iBnNI7N6 引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。
839デフォルトの名無しさん
2017/08/27(日) 14:23:58.62ID:0iS30aa2 ところで本当にこれジェネリックの問題?
840デフォルトの名無しさん
2017/08/27(日) 14:27:48.95ID:wLayuApT C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる
841デフォルトの名無しさん
2017/08/27(日) 17:42:23.47ID:0P4eY3kj842デフォルトの名無しさん
2017/08/27(日) 21:19:13.07ID:wLayuApT >>841
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ
ttps://ideone.com/6V11EP
C++っぽくないコードだけどとりあえず
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ
ttps://ideone.com/6V11EP
C++っぽくないコードだけどとりあえず
843デフォルトの名無しさん
2017/08/27(日) 21:38:06.45ID:0P4eY3kj844デフォルトの名無しさん
2017/08/28(月) 18:40:12.12ID:g1F8jR1j import 'reflect-metadata';
function logType(target: any, key: string) {
var t = Reflect.getMetadata('design:type', target, key);
console.log(`${key} type: ${t.name}`);
}
class Demo {
@logType
public attr1: string;
}
Visual Studio 2017 で上記のビルドは問題ないのですが
実行すると、「exports は定義されていません」と出てしまいます。
tsconfig.json で
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
は指定しています。
何か足りないのでしょうか?
function logType(target: any, key: string) {
var t = Reflect.getMetadata('design:type', target, key);
console.log(`${key} type: ${t.name}`);
}
class Demo {
@logType
public attr1: string;
}
Visual Studio 2017 で上記のビルドは問題ないのですが
実行すると、「exports は定義されていません」と出てしまいます。
tsconfig.json で
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
は指定しています。
何か足りないのでしょうか?
845デフォルトの名無しさん
2017/08/28(月) 20:16:46.01ID:3Zs55+dM846デフォルトの名無しさん
2017/08/30(水) 15:24:22.43ID:0nj0F5xg 初心者なんだけど質問いいだろうか?
JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる
バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか?
JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる
バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか?
847デフォルトの名無しさん
2017/08/30(水) 15:36:04.15ID:KRZoTQ7y 公式のWhat's newがベスト
差分付き公式アナウンスの日本語訳もあったはず
差分付き公式アナウンスの日本語訳もあったはず
848デフォルトの名無しさん
2017/08/30(水) 17:14:44.50ID:0nj0F5xg >>847
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……
849デフォルトの名無しさん
2017/08/30(水) 17:16:57.33ID:0nj0F5xg850デフォルトの名無しさん
2017/08/30(水) 17:22:11.52ID:t7ExSs7Y851デフォルトの名無しさん
2017/08/30(水) 19:16:11.64ID:2eRd6qUC 俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。
852デフォルトの名無しさん
2017/08/30(水) 23:22:37.02ID:0nj0F5xg853デフォルトの名無しさん
2017/08/31(木) 10:22:17.60ID:J0kol7QQ 俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある?
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない
854デフォルトの名無しさん
2017/08/31(木) 18:05:56.86ID:c0+jc73k >>852
見た目は大事だね
見た目は大事だね
855デフォルトの名無しさん
2017/09/01(金) 13:39:42.18ID:/s9HCfxW 納期ギリギリでリリースしてきたな
856デフォルトの名無しさん
2017/09/01(金) 14:35:34.71ID:gwzO0YnZ Announcing TypeScript 2.5
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/
857デフォルトの名無しさん
2017/09/01(金) 18:09:16.31ID:NFcRuct1 これリリースする意味あるんか?
858デフォルトの名無しさん
2017/09/01(金) 18:55:40.04ID:/s9HCfxW やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ
859デフォルトの名無しさん
2017/09/02(土) 17:49:25.16ID:p+zwcdRJ プロジェクトの管理者が長期休暇で居なかったからな
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ
860デフォルトの名無しさん
2017/09/02(土) 17:50:58.84ID:pn8ujE89 そう聞くとなんかほっこりした
861デフォルトの名無しさん
2017/09/03(日) 14:18:22.90ID:25YGmHNv Angelar4どう?
862デフォルトの名無しさん
2017/09/03(日) 16:16:24.17ID:uF0EtmbD 4はパフォーマンス改善が大きい
あとはifとか
もう9月だから5出るぞ
あとはifとか
もう9月だから5出るぞ
863デフォルトの名無しさん
2017/09/04(月) 09:30:18.55ID:XPn2hQsA Angular 2/4が狭量で遅すぎる理由
http://postd.cc/why-angular-2-4-is-too-little-too-late/
http://postd.cc/why-angular-2-4-is-too-little-too-late/
864デフォルトの名無しさん
2017/09/04(月) 15:20:15.81ID:YyUl+V5/ >>863
原文のコメント欄でかなり叩かれてるね
原文のコメント欄でかなり叩かれてるね
865デフォルトの名無しさん
2017/09/04(月) 21:01:59.56ID:54ysCAWj 自分でTL;DRって書いてあるからそっとしておけばいいのに
866デフォルトの名無しさん
2017/09/04(月) 23:02:59.27ID:WJEd6wUZ867デフォルトの名無しさん
2017/09/05(火) 08:07:39.31ID:JsNUX7wh >>865
tldrの意味を間違えて解釈してないか?
tldrの意味を間違えて解釈してないか?
868デフォルトの名無しさん
2017/09/06(水) 08:52:58.29ID:ZKLFsM4G https://eow.alc.co.jp/search?q=tldr
TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。
TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。
869デフォルトの名無しさん
2017/09/06(水) 18:28:14.77ID:8/JJ3nEQ ○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと
これならJIETから3次でいったほうがいいな
446非決定性名無しさん2017/08/02(水) 22:12:48.95
JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした
JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の間でやらしている。
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ
自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと
これならJIETから3次でいったほうがいいな
446非決定性名無しさん2017/08/02(水) 22:12:48.95
JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした
JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の間でやらしている。
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ
自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
870デフォルトの名無しさん
2017/09/19(火) 11:15:37.37ID:/BmvhpgH jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。
誰か作って
誰か作って
871デフォルトの名無しさん
2017/09/20(水) 19:34:43.20ID:n6fd8Yhd immutable.js v4まだちゃんと動かんのね。補完効くなら早く使いたい。
872デフォルトの名無しさん
2017/09/26(火) 15:23:42.06ID:ghZl2iPU873デフォルトの名無しさん
2017/09/27(水) 03:23:26.68ID:+Ye2aVjL 更新履歴確認できる?
874デフォルトの名無しさん
2017/10/03(火) 18:20:58.44ID:W51YTaAn875デフォルトの名無しさん
2017/10/03(火) 18:39:35.95ID:9EEmWhET まだ五年しかたってないんだ。
876デフォルトの名無しさん
2017/10/09(月) 07:06:58.86ID:9dKH0tXT flowは静的解析ツールでtypescriptが言語ってことでいいの?
877デフォルトの名無しさん
2017/10/09(月) 21:16:28.99ID:3eEbeVt6 flowはゴミだから気にしなくていいよ
878デフォルトの名無しさん
2017/10/10(火) 03:03:10.33ID:kZcMF3GJ 今はTSとほぼ同じ構文が使えるみたいだし推論が強い分言語としてはFlowのほうが格上になったと思うよ
開発ツール等を含めた評価はどうなるか知らんが
開発ツール等を含めた評価はどうなるか知らんが
879デフォルトの名無しさん
2017/10/10(火) 19:56:20.72ID:n13p9MLl880デフォルトの名無しさん
2017/10/12(木) 06:43:35.33ID:D9zQ5ULh 最初は俺もゴミかと思ったけど静的解析ツールとしてってことだと
jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。
jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。
881デフォルトの名無しさん
2017/10/12(木) 08:50:48.19ID:x7s9E0v1 >>880
TSだって段階的に型を付けられるっしょ。
TSだって段階的に型を付けられるっしょ。
882デフォルトの名無しさん
2017/10/14(土) 22:19:53.51ID:A+SmlCyw https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#localized-diagnostics-on-the-command-line
typescript 2.6 ローカライズが全面的に入るっぽい
typescript 2.6 ローカライズが全面的に入るっぽい
883デフォルトの名無しさん
2017/10/14(土) 22:27:47.84ID:+JNXgfir 非英語Issueが次々と投げ込まれていくところを想像すると胸が熱くなるな
誰がこういうの決定してんだろ
誰がこういうの決定してんだろ
884デフォルトの名無しさん
2017/10/15(日) 13:45:26.13ID:29cWpLj+ いままで入ってなかったのが不思議
885デフォルトの名無しさん
2017/10/15(日) 21:03:43.86ID:U2nzSUai コマンドラインメッセージが日本語化されるの?いらんだろそれ
886デフォルトの名無しさん
2017/10/15(日) 21:27:06.79ID:nlQ3NzZf ローカライズありがたいけどところどころ明らかな誤訳が混じってる
887デフォルトの名無しさん
2017/10/16(月) 08:15:42.86ID:eZyML9Cw 誤訳を見つけてくれてありがとう
お前のプルリクを待ってるぜ!
お前のプルリクを待ってるぜ!
888デフォルトの名無しさん
2017/10/16(月) 11:31:48.47ID:ZoMoe7Af かえってわかりにくくなる
889デフォルトの名無しさん
2017/10/16(月) 12:12:06.22ID:Z0srHJQs コマンドラインよりhandbookの方を翻訳してほしいよね
890デフォルトの名無しさん
2017/10/17(火) 08:07:20.81ID:ALnPGbmE 2.4.2から2.5.3に上げたら、User defined type-guard functionとTagged union typeの組み合わせで
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?
891デフォルトの名無しさん
2017/10/17(火) 08:10:24.70ID:1Byit6P4 issueあさりにいけ
892デフォルトの名無しさん
2017/10/18(水) 22:10:52.67ID:wBhwyrKl TypescriptでReact使ってる人にお聞きしたいんですけど
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか
893デフォルトの名無しさん
2017/10/18(水) 23:58:41.35ID:5bsiTMSo894デフォルトの名無しさん
2017/10/19(木) 09:09:43.33ID:33xh/nBB >>893
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。
> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。
> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?
895デフォルトの名無しさん
2017/10/19(木) 20:20:28.20ID:LXr9z35K それか
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも
>>894
説明面倒だからggrks
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも
>>894
説明面倒だからggrks
896デフォルトの名無しさん
2017/10/20(金) 00:43:33.60ID:aPV4O3Wb moment.js 便利だな
今更だが
今更だが
897デフォルトの名無しさん
2017/10/21(土) 12:56:00.66ID:VqKLKVGY >>895
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する
898デフォルトの名無しさん
2017/10/22(日) 05:02:18.10ID:NdVgkCyx899デフォルトの名無しさん
2017/10/22(日) 05:09:40.65ID:NdVgkCyx2017/10/22(日) 11:51:56.71ID:r0jppfs8
>>899
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと
901デフォルトの名無しさん
2017/10/23(月) 21:24:20.12ID:xr09IWoG 地味にawait書き忘れてちゃんと動かないというパターンが多発してるんですが
TSLintでawait入れ漏れで指摘する機能ってないですかね?
TSLintでawait入れ漏れで指摘する機能ってないですかね?
902デフォルトの名無しさん
2017/10/23(月) 23:05:48.01ID:zzY32qse >>901
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね
903デフォルトの名無しさん
2017/10/30(月) 07:24:42.96ID:I1PPVtSx もう10月終わるけどまた駆け込みリリースかね
904デフォルトの名無しさん
2017/11/01(水) 02:44:19.40ID:x/3omok5 Announcing TypeScript 2.6
https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/
https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/
905デフォルトの名無しさん
2017/11/01(水) 23:51:55.80ID:x/3omok5906デフォルトの名無しさん
2017/11/02(木) 12:10:31.71ID:Gd7lD1Ih Angular 5.0.0がリリースされました
https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d
はやい、はやいよぉ…
https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d
はやい、はやいよぉ…
907デフォルトの名無しさん
2017/11/02(木) 20:11:59.50ID:eNK4k+UN ffのアップデート並み
908デフォルトの名無しさん
2017/11/02(木) 22:27:03.79ID:taAN7xor なお間に合わなかったバグフィクスはガンガン後回しにしてリリースする模様
909デフォルトの名無しさん
2017/11/03(金) 03:45:19.14ID:kJ3ZRkrN アジャイルってそういうもんだし
910デフォルトの名無しさん
2017/11/03(金) 05:18:11.47ID:IsjJm0uL >>906
アンギュラーってぶっちゃけ使ってる人いるの?
アンギュラーってぶっちゃけ使ってる人いるの?
911デフォルトの名無しさん
2017/11/03(金) 07:42:27.47ID:gwa0lp/v Google自身が使ってないのにどうして使うというのか
912デフォルトの名無しさん
2017/11/08(水) 20:05:35.96ID:uhXC9xV7913デフォルトの名無しさん
2017/11/12(日) 02:41:12.23ID:EwcJ+uHe 2.6になったらコンパイルエラーが多発する。react-redux のconnect周りで。
なんでー
なんでー
914デフォルトの名無しさん
2017/11/12(日) 13:16:12.66ID:oQrEnmVF MEAN勉強中なのにangulerってマイナーなの?ショック
915デフォルトの名無しさん
2017/11/25(土) 21:21:37.41ID:UiY7gN7d コンストラクタを複数定義できないのでしょうか??
うーん。
うーん。
916デフォルトの名無しさん
2017/11/25(土) 21:28:52.67ID:UiY7gN7d オーバーロードはできるけど、実装は1つとか・・
JSONへのシリアライズ・デシリアライズは自分で制御するので、
constructor(json: any)と
construcotr(parameter1: type1, parameter2: type2)
二つ用意したいんですけど。最初は
construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、
staticメソッドの方に
statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。
JSONへのシリアライズ・デシリアライズは自分で制御するので、
constructor(json: any)と
construcotr(parameter1: type1, parameter2: type2)
二つ用意したいんですけど。最初は
construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、
staticメソッドの方に
statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。
917デフォルトの名無しさん
2017/11/25(土) 21:37:57.59ID:UiY7gN7d ごめんなさい。これじゃ何いってるからんし、意味不明ですね。
918デフォルトの名無しさん
2017/11/26(日) 00:19:08.88ID:mkIW06Zo919デフォルトの名無しさん
2017/11/26(日) 04:33:36.78ID:Aye3R7gH オブジェクト指向を学ぼう
920デフォルトの名無しさん
2017/11/26(日) 23:18:17.65ID:rkyPHH9I 願望なんだけど
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。
Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
http://flex.apache.org/
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。
Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
http://flex.apache.org/
921デフォルトの名無しさん
2017/11/26(日) 23:25:22.11ID:pQh5Iwo2 >>920
JSのスーパーセット目指してるんだし無理に決まってんだろ
JSのスーパーセット目指してるんだし無理に決まってんだろ
922デフォルトの名無しさん
2017/11/26(日) 23:28:03.09ID:rkyPHH9I すみませんリンク先間違ってました。
http://royale.codeoscopic.com/
http://royale.codeoscopic.com/
923デフォルトの名無しさん
2017/11/26(日) 23:33:18.08ID:i1z8rFU6925デフォルトの名無しさん
2017/12/01(金) 19:48:21.81ID:Qr863YVP 人気沸騰中のはずなのに年々参加者が減っていきついにアドカレ作られすらしなくなったTypeScriptさん
926デフォルトの名無しさん
2017/12/01(金) 20:26:25.44ID:6V2me3Iy TypeScript関係ないけど、アドカレVue.jsすげぇな。React人気ないのか??
927デフォルトの名無しさん
2017/12/01(金) 20:32:35.43ID:u+SbUYxr FBのゴタゴタがきいてるんかな
928デフォルトの名無しさん
2017/12/01(金) 22:04:45.62ID:jFvanr8n アドカレ的にはjs扱いなんじゃね?
929デフォルトの名無しさん
2017/12/01(金) 23:41:41.28ID:tkoMYkG1 ES6普及したから
AltJSへの興味が薄れてるんじゃね?
AltJSへの興味が薄れてるんじゃね?
930デフォルトの名無しさん
2017/12/01(金) 23:55:12.47ID:jFvanr8n まだasync await周りが完成してないけどね。
とりあえずmapとかfilterが普通に使えるようになってほしい
とりあえずmapとかfilterが普通に使えるようになってほしい
931デフォルトの名無しさん
2017/12/14(木) 10:19:06.97ID:y5gxd1px stackblitzいいな。マジでplayground系の決定版感ある。
https://stackblitz.com/edit/react-ts
https://stackblitz.com/edit/react-ts
932デフォルトの名無しさん
2017/12/14(木) 16:42:58.78ID:y5gxd1px typeScriptのinterfaceで配列の要素数を制約する方法ってありますかね?
933デフォルトの名無しさん
2017/12/14(木) 19:30:41.65ID:lO2D+k3i >>931
vscodeみてーなUIだな
vscodeみてーなUIだな
934デフォルトの名無しさん
2017/12/14(木) 19:31:21.04ID:lO2D+k3i935デフォルトの名無しさん
2017/12/14(木) 19:43:58.65ID:ZmHWuRBr tupleとして扱う
936デフォルトの名無しさん
2017/12/14(木) 20:36:42.23ID:LW4O1R2X tuple使え
937デフォルトの名無しさん
2017/12/14(木) 22:26:15.12ID:lO2D+k3i もしかして:タプル機能を知らない
let vec:[number,number=[1,1];
let vec:[number,number=[1,1];
938デフォルトの名無しさん
2017/12/14(木) 22:27:31.03ID:lO2D+k3i ミス
let vec:[number,number]=[1,1];
もちろんこれでもOK
type Vec=[number,number];
let vec:Vec=[number,number];
let vec:[number,number]=[1,1];
もちろんこれでもOK
type Vec=[number,number];
let vec:Vec=[number,number];
939デフォルトの名無しさん
2017/12/14(木) 22:29:51.71ID:LW4O1R2X 前にもタプルあるのにタプル欲しい言ってたやついたような
940デフォルトの名無しさん
2017/12/14(木) 23:16:24.01ID:lO2D+k3i https://www.typescriptlang.org/docs/handbook/advanced-types.html
タプルもだけど、このページ読んでない人多くね?
TypeScript語るなら&、|、is、keyofくらいマスターしておけよな
タプルもだけど、このページ読んでない人多くね?
TypeScript語るなら&、|、is、keyofくらいマスターしておけよな
941デフォルトの名無しさん
2017/12/15(金) 00:23:56.02ID:okgNcKTb942デフォルトの名無しさん
2017/12/15(金) 10:29:49.56ID:sajYuSyc (´・ω・`) デコレータがなんの役に立つのかわからん…
943デフォルトの名無しさん
2017/12/15(金) 12:12:33.81ID:ehq3lI3U 一時期使ってみたが全部取っ払って今は一切使ってない
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証
944デフォルトの名無しさん
2017/12/15(金) 12:39:37.56ID:pWQR70OL veu
945デフォルトの名無しさん
2017/12/15(金) 13:09:01.78ID:VJqK9zii 使ってないけど、デコレータはDI(dependency injection)(依存性の注入)に使うんでしょ?
そもそもそれが必要な事なのか知らんけど
そもそもそれが必要な事なのか知らんけど
946デフォルトの名無しさん
2017/12/15(金) 16:08:57.23ID:ehq3lI3U DIはコンストラクタ注入だけでいい
メソッドだの継承だのデコレータだの無駄に複雑なだけ
メソッドだの継承だのデコレータだの無駄に複雑なだけ
947デフォルトの名無しさん
2017/12/16(土) 11:15:39.58ID:Ab77UDQn Angularもけっこう深い沼だな…
948デフォルトの名無しさん
2017/12/16(土) 22:02:32.48ID:c6/WUVVQ 沼というか泥舟
949デフォルトの名無しさん
2017/12/17(日) 16:05:22.54ID:dnHAQQNy ionic はタイタニックだしな
950デフォルトの名無しさん
2017/12/18(月) 13:13:38.64ID:2IRqztoA あげ
951デフォルトの名無しさん
2018/01/16(火) 20:27:44.97ID:FhxZLFGY interfaceを使ってるとjsonでセーブする時にすごく便利なんだけどメソッドが生やせないのが辛い。
なんとかならないかな
なんとかならないかな
952デフォルトの名無しさん
2018/01/17(水) 16:20:55.33ID:AWcujNq7 手動で保存・復元すればOK
953デフォルトの名無しさん
2018/01/17(水) 16:23:04.93ID:AWcujNq7 まぁ、classレベルならいいけど、interfaceレベルだときついかもしれんが。
954デフォルトの名無しさん
2018/01/18(木) 18:36:14.16ID:c8bYFLwE Announcing TypeScript 2.7 RC
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/
毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/
毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う
955デフォルトの名無しさん
2018/01/24(水) 05:53:19.16ID:V1qhcEkf localStorageとかreduxとか使ってると意図せず型変換が入ってtscはDate型の想定なのに実際はstringという状況マジ勘弁してください。
956デフォルトの名無しさん
2018/01/24(水) 08:16:36.90ID:BFkGLEDk >tscはDate型の想定なのに実際はstringという状況
そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。
そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。
957デフォルトの名無しさん
2018/01/25(木) 22:12:47.33ID:cFDHLCLJ DateがJSON serializableじゃないって話でTypeScriptの問題でもない
958デフォルトの名無しさん
2018/01/29(月) 11:43:46.31ID:16WZc9vb インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか?
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc
959デフォルトの名無しさん
2018/01/29(月) 11:48:46.22ID:16WZc9vb960デフォルトの名無しさん
2018/01/29(月) 14:06:48.67ID:16WZc9vb 返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね?
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
961デフォルトの名無しさん
2018/01/29(月) 16:26:17.34ID:g7co9PB2 >>959
Baseって何を指すの?
Baseって何を指すの?
962デフォルトの名無しさん
2018/01/31(水) 10:23:18.30ID:V9tZNzCA TypeScriptでglobal import的なものってないですかね?
ロガーを作ったんですけど、それを毎回importするのがしんどくて
ロガーを作ったんですけど、それを毎回importするのがしんどくて
963デフォルトの名無しさん
2018/02/01(木) 14:40:42.51ID:ma2l7eSX Announcing TypeScript 2.7
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/
964デフォルトの名無しさん
2018/02/05(月) 22:05:36.77ID:wQgqkVj5 >>963
TypeScript 2.7.1 変更点
https://qiita.com/vvakame/items/3a1e628e53a5dd99dfe0
2.8
Conditional types
https://github.com/Microsoft/TypeScript/pull/21316
Type inference in conditional types
https://github.com/Microsoft/TypeScript/pull/21496
TypeScript 2.7.1 変更点
https://qiita.com/vvakame/items/3a1e628e53a5dd99dfe0
2.8
Conditional types
https://github.com/Microsoft/TypeScript/pull/21316
Type inference in conditional types
https://github.com/Microsoft/TypeScript/pull/21496
965デフォルトの名無しさん
2018/02/05(月) 23:37:11.09ID:Rv6TwvHy Conditional types関連は既にmergedなのか
966デフォルトの名無しさん
2018/02/06(火) 05:58:37.68ID:vXstL54C 小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡
修正されるまで一回休み
修正されるまで一回休み
967デフォルトの名無しさん
2018/02/13(火) 05:54:42.41ID:kAM/OKSF 型を後付した言語の限界があるよな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。
例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。
例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
968デフォルトの名無しさん
2018/02/13(火) 06:47:09.07ID:a2BGtfue それは信頼できないjsが悪いだけだろ
外部のクソコードはどうにもならん
外部のクソコードはどうにもならん
969デフォルトの名無しさん
2018/02/13(火) 09:13:05.77ID:cOH/iFjL TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる
PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる
PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
970デフォルトの名無しさん
2018/02/13(火) 15:21:25.94ID:xpZzv5qK >>969
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。
971デフォルトの名無しさん
2018/02/13(火) 15:22:21.77ID:xpZzv5qK972デフォルトの名無しさん
2018/02/13(火) 22:00:08.76ID:XkJQyT0D jsから呼ばれる部分はどうやってもチェックしようがないと思うぞ。
973デフォルトの名無しさん
2018/02/20(火) 18:34:14.34ID:KguAhC0Q yarnのワークスペースを使用して、Create React AppとCreate React Native App (Expo) で共通のコードを共有する
https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?
https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?
974デフォルトの名無しさん
2018/02/26(月) 16:47:13.03ID:Y4Glcgpd ブラウザで動く個人的なちょっとしたものしか作らなくて、
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?
仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?
仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます
975デフォルトの名無しさん
2018/02/26(月) 17:28:19.81ID:wXoocKSL .d.tsファイルでインポートすればいいはず
976デフォルトの名無しさん
2018/02/26(月) 19:51:46.67ID:Y4Glcgpd いろいろやってみたけど、なかなか上手くいかない。
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)ってやつに対応した書き方になってなくて、
それに対応するためにexport as namespace hogehoge; が必要だったりするらしい
https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)ってやつに対応した書き方になってなくて、
それに対応するためにexport as namespace hogehoge; が必要だったりするらしい
https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules
977デフォルトの名無しさん
2018/02/26(月) 21:54:01.34ID:0Cvn/PR2978デフォルトの名無しさん
2018/02/26(月) 23:16:55.53ID:Y4Glcgpd 例えばmomentを使う場合、scriptタグでmoment.jsを読み込んでいれば、
自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。
そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。
そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、
実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが
参照されるようになります。
しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、
定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。
(エラーは出ますが、anyとしてコンパイルはされます。)
その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。
結局は、モジュールシステムに合わせた定義ファイルの書き方を
理解している人が少ないのだと思います。
export hogehoge とか export default hogehoge とか export = hogehogeとか
わけわかりません。
自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。
そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。
そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、
実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが
参照されるようになります。
しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、
定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。
(エラーは出ますが、anyとしてコンパイルはされます。)
その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。
結局は、モジュールシステムに合わせた定義ファイルの書き方を
理解している人が少ないのだと思います。
export hogehoge とか export default hogehoge とか export = hogehogeとか
わけわかりません。
979デフォルトの名無しさん
2018/02/27(火) 01:53:35.35ID:ZLoGDkNB >>978
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。
ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。
ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。
980デフォルトの名無しさん
2018/02/27(火) 01:59:51.55ID:ZLoGDkNB つーかUMD対応中みたいだね
https://github.com/moment/moment/pull/3688
ワークアラウンドとして
import * as _moment from 'moment';
export as namespace moment;
export = _moment;
というd.tsを作ってimportすればいい
https://github.com/moment/moment/pull/3688
ワークアラウンドとして
import * as _moment from 'moment';
export as namespace moment;
export = _moment;
というd.tsを作ってimportすればいい
981デフォルトの名無しさん
2018/02/27(火) 12:44:23.84ID:XDcEi9Sw import使っちゃった意味ないんだけどね
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
982デフォルトの名無しさん
2018/02/27(火) 12:53:20.87ID:XDcEi9Sw 勘違いしてた
import _moment from 'moment';
export as namespace moment;
export = _moment;
とか、
import _Vue from 'Vue';
export as namespace Vue;
export = _Vue;
みたいに書けばいいのか。
すごい。解決した
import _moment from 'moment';
export as namespace moment;
export = _moment;
とか、
import _Vue from 'Vue';
export as namespace Vue;
export = _Vue;
みたいに書けばいいのか。
すごい。解決した
983デフォルトの名無しさん
2018/03/01(木) 22:44:29.35ID:V7eofqS1 次スレカモン
984デフォルトの名無しさん
2018/03/12(月) 23:33:32.22ID:ZJVFDbUv985デフォルトの名無しさん
2018/03/16(金) 08:23:22.72ID:K5Isy9NI Announcing TypeScript 2.8 RC
https://blogs.msdn.microsoft.com/typescript/2018/03/15/announcing-typescript-2-8-rc/
https://blogs.msdn.microsoft.com/typescript/2018/03/15/announcing-typescript-2-8-rc/
986デフォルトの名無しさん
2018/03/16(金) 14:11:16.40ID:HcB/quXY >>983
次スレのテンプレに入れたほうがいいものとかある?
次スレのテンプレに入れたほうがいいものとかある?
987デフォルトの名無しさん
2018/03/17(土) 00:42:53.78ID:4Xu/HAYS tsconfigのexcludeの項目を、compilerOptionsの中に書いてて、何でダメなんだろう悩んじゃった
設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった
設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった
988デフォルトの名無しさん
2018/03/17(土) 21:01:59.42ID:zUTKt+H5989デフォルトの名無しさん
2018/03/28(水) 08:14:57.22ID:3iq+90ex Announcing TypeScript 2.8
https://blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/
https://blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/
990デフォルトの名無しさん
2018/04/02(月) 17:52:32.10ID:G4IZotVZ 俺のtypescriptが好きすぎる感情をどこにぶつけていいかわからない
991デフォルトの名無しさん
2018/04/02(月) 18:53:21.97ID:aSG3UjFJ Qiitaでええやろ
992デフォルトの名無しさん
2018/04/03(火) 10:37:57.34ID:0rmSrban >>990
俺も俺も!。qiitaでもいいしココでもいいよ!!
俺も俺も!。qiitaでもいいしココでもいいよ!!
993デフォルトの名無しさん
2018/04/03(火) 11:33:16.29ID:R6gDm2yr 次スレよろ
994デフォルトの名無しさん
2018/04/05(木) 19:58:55.32ID:0c0qrJs0 スレ立てにぶつけることが決まったな
995デフォルトの名無しさん
2018/04/20(金) 07:03:30.59ID:yIya3QmH どうしたん?人気あるわりにここ静かやん
996デフォルトの名無しさん
2018/04/20(金) 09:50:01.67ID:WJk0jxxj 続きはCMのあとで!
997デフォルトの名無しさん
2018/04/24(火) 20:06:57.83ID:TUZ43qB9 はよ次スレ
998デフォルトの名無しさん
2018/04/24(火) 21:50:54.24ID:BAt1Eldp うむ
999デフォルトの名無しさん
2018/04/26(木) 21:48:57.62ID:mMDBzDaB1000デフォルトの名無しさん
2018/04/26(木) 21:52:07.15ID:vM7mL5EC safariが次のIEと呼ばれているように、
Typescriptは次のcoffeescriptと言われているwww
Typescriptは次のcoffeescriptと言われているwww
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1092日 3時間 14分 38秒
新しいスレッドを立ててください。
life time: 1092日 3時間 14分 38秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- トランプ大統領「今日は解放の日だ」相互関税砲発射、世界の株式市場に激震 米ハイテク7銘柄、約112兆円失う [おっさん友の会★]
- 【フジテレビ】親会社の大株主・ダルトンが声明 清水社長ら5人の取締役に退任要求… 「経営刷新にはほど遠い」「株主として許し難い」 [冬月記者★]
- 米財務長官 各国はパニックにならず報復しないように 報復なければ今の数字が上限、報復すれば事態は悪化すると警告 ★5 [Hitzeschleier★]
- すき家 24時間営業取りやめ毎日1時間全店で休業・清掃 [少考さん★]
- 【国際】マクロン大統領「アメリカ人は貧困化するだろう」 [ぐれ★]
- トランプ関税 日本24%、中国34%、台湾32%、韓国30%、EU20%、英国10%など [パンナ・コッタ★]