[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/16 07:51 / Filesize : 265 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

TypeScript part2



1 名前:デフォルトの名無しさん [2015/04/30(木) 18:37:29.98 ID:ynMflk1l.net]
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.

前スレ
peace.2ch.net/test/read.cgi/tech/1349187527/

730 名前:デフォルトの名無しさん mailto:!sage [2017/06/11(日) 19:15:01.32 ID:AskXGu9A.net]
interface A{
 x:string;
 y:string;
}

interface B extends A{
 x:number;
}

が型の互換性エラーになるの何とかならない?
let a={x:'hoge',y:'foo'};
let b={...a,{x:1}};

みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い

731 名前:デフォルトの名無しさん [2017/06/11(日) 19:18:40.94 ID:AskXGu9A.net]
>>697
ngxのスレは別にある

732 名前:デフォルトの名無しさん [2017/06/11(日) 19:55:36.52 ID:AskXGu9A.net]
>>699
2以降はこっち
mevius.2ch.net/test/read.cgi/hp/1484055394/

733 名前:デフォルトの名無しさん [2017/06/11(日) 20:29:27.66 ID:zURolSWc.net]
>>700
型が変わったら継承できないのは当たり前では?

interface Parent {
x: string | number;
y: string;
}

interface A extends Parent {
x: string;
}

interface B extends Parent {
x: number;
}

こういう関係が正しい関係では?

734 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 21:09:00.82 ID:y28miZDE.net]
理解してない奴を炙り出すのにも静的チェックは必要なんやなって

735 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 21:21:16.05 ID:QZNztTAY.net]
>>703
プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする
アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど

736 名前:デフォルトの名無しさん [2017/06/11(日) 22:09:32.03 ID:AskXGu9A.net]
>>703
継承出来ないのは当たり前って言うのは分かる
ただ上書きする構文が欲しい

737 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 22:13:08.61 ID:QZNztTAY.net]
>>706
ジェネリクスあるし上書きする構文が必要になる状況が分からん

738 名前:デフォルトの名無しさん [2017/06/11(日) 22:22:11.45 ID:eD+QASKK.net]
上書きなんぞせずとも別の名前付ければよくね?
デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ



739 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 23:47:19.06 ID:fVYgJSKO.net]
extends Aじゃないけどその定義を流用してBを定義したいということか?

740 名前:デフォルトの名無しさん [2017/06/11(日) 23:48:25.17 ID:AskXGu9A.net]
>>709
そういう事

741 名前:デフォルトの名無しさん [2017/06/11(日) 23:49:49.29 ID:AskXGu9A.net]
B extends Aじゃないから当然
(hoge:B)=>{
let foo:A=hoge;
}

みたいな事は出来なくて良い(というか出来ない)

742 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 00:58:34.90 ID:F6aJQHtJ.net]
継承じゃないんだから諦めてジェネリクス使いなよ

743 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:01:38.24 ID:9hAA1jJ7.net]
世の中にxがstringかnumberの場合があるのなら、x: string | number という定義が正しい気がしますが

744 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:11:52.28 ID:R1uj6Z8h.net]
ジェネリクスだと>>700の問題がどこまで解決できるんだろう。

745 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:26:45.30 ID:vVucOmau.net]
>>714
interface X<T> {
 x: T;
 y: string;
}
interface A extends X<string> { }
interface B extends X<number> { }

746 名前:デフォルトの名無しさん [2017/06/12(月) 18:05:51.91 ID:i2S9/2aT.net]
flowとtypescriptって
どっちが良いの?

747 名前:デフォルトの名無しさん [2017/06/12(月) 18:14:08.97 ID:/bUB16QZ.net]
>>716
圧倒的TypeScript
異論は見ろめない

748 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 21:00:25.44 ID:5UNDPLtW.net]
酔うの早すぎるだろ



749 名前:デフォルトの名無しさん mailto:sage [2017/06/13(火) 22:10:43.81 ID:PMWJJsvl.net]
Announcing TypeScript 2.4 RC
https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/

750 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 08:28:34.92 ID:TtxDPC/b.net]
enumってstring literal型出てからほぼ使わなくなったからなあ
コード内でimportできるのもよくわからん
何がよくなったんだ

751 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 09:04:40.52 ID:t483F9YG.net]
新importは関数であることに意味がある

752 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 21:28:45.57 ID:YgZhsY+k.net]
>>721
なるほど Promiseで返すってことはasync await 前提なんかな。
ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから
一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。

753 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 21:29:54.91 ID:YgZhsY+k.net]
jsの仕様変更そろそろ収まって欲しい。
import周りってこれで安定するようになるのかな。

754 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 19:20:45.69 ID:Zba3QY3O.net]
filterの中でasync await って使えないんですかね?

755 名前:デフォルトの名無しさん [2017/06/15(木) 19:24:11.68 ID:xqojsLNP.net]
>>724
無理
rxjs使うか設計見なおせ
具体的に何をしたい?

756 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 21:25:19.64 ID:Zba3QY3O.net]
filterの評価関数を作ろうとした時に、今まで作ったやつが全部プロミス返す設計になっていたので、
シームレスに使おうとしたらasync-awaitを使えないかなーと。
将来的にここもasync await使えるようになるのかな。
結局ループを回して絞込処理を実装しましたわ。

757 名前:デフォルトの名無しさん [2017/06/15(木) 21:30:12.69 ID:xqojsLNP.net]
rxjs使え

758 名前:デフォルトの名無しさん [2017/06/15(木) 21:32:03.12 ID:xqojsLNP.net]
それか自作。そんなに難しくないぞ



759 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 01:22:09.50 ID:uNQVqIhb ]
[ここ壊れてます]

760 名前:.net mailto: rx推しが謎すぎる。 []
[ここ壊れてます]

761 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 07:51:13.34 ID:VSZ6CfqO.net]
ループでawaitしちゃうってパフォーマンス悪くない?
await promise.all([].map(async () => {}))

こういうのが普通では?

762 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 12:37:39.06 ID:uNQVqIhb.net]
>>730
ずっとpromise.allの存在を失念してた。
これでmap的な使い方できるね。


ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで
自動でimportする設定ってtsconfigにないかな?

763 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 10:56:23.79 ID:254ieyWi.net]
typescript便利だけどやっぱり型が後付の弊害がなかなかしんどい。
nullを許

764 名前:容しない前提かと思って使っても結局
実体はnullが突っ込んであったり する。
[]
[ここ壊れてます]

765 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 17:32:41.06 ID:Jhwo6DZg.net]
弊害じゃなくて人為的ミス
誤りに気付いた者が正せばいい

766 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 22:27:47.68 ID:254ieyWi.net]
swaggerのジェネレーターが出すコードなんだよね。プルリク出すのが面倒です

767 名前:デフォルトの名無しさん mailto:sage [2017/06/18(日) 00:50:13.20 ID:GScuub4f.net]
サーバーサイドの言語仕様とswaggerがstrict null checkに対応してないだけであって
typescriptは何も悪くないのでは

768 名前:デフォルトの名無しさん [2017/06/18(日) 15:17:38.51 ID:xPH4G83l.net]
ほんそれ



769 名前:デフォルトの名無しさん mailto:sage [2017/06/18(日) 20:34:02.75 ID:9Ms8Oqe4.net]
>>735
本体がstrict null check対応しても
モジュール側が対応してないとそこは無視するってことです?
例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね

770 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 00:15:28.42 ID:2IBzsU2g.net]
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 の条件に入れたいってことなんですが。

771 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 09:56:19.65 ID:nrLP7Uu1.net]
インデックスシグネチャがstringかnumberしか受け入れない現状では
Aliasを定義する時点でキー(Action.typeの値)が
分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; }
分からないなら interface Alias { [type: string]: Func; }

772 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 20:30:47.90 ID:8qDOjcU2.net]
>>731
interface Actions {
A: {id: number};
B: {payload: any}
}


interface Arias {[key in keyof Actions]: () => Actions[key]}

こういうことかな?

773 名前:デフォルトの名無しさん [2017/06/19(月) 21:29:43.40 ID:GKod7M3S.net]
携帯から書いたけどエラー起きてるし意図理解できてなかった。
こういうことかな?
type Action = { type: "A" } | {type: "B"};
type Arias = {[K in Action["type"]]: () => void}
i.imgur.com/17xtAlw.png

774 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 22:19:36.13 ID:p+TikfUB.net]
Arias(笑)

775 名前:デフォルトの名無しさん mailto:sage [2017/06/20(火) 16:14:46.75 ID:Nl8VP77v.net]
>>741
おー。聞いてみて良かったです。半分諦めてたんで。
上手く動きました。ありがとうございます。

776 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 12:13:37.61 ID:qahQSwg3.net]
>>743
もっとこういう質問で賑わってほしい
書いてて気持ちいい言語だから
angularやreactは流行らなくていいけどフロント開発の標準はtypescriptになってほしい

777 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 14:47:30.10 ID:CAzvCkNY.net]
>>744
定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。
あとReactというかReduxつかってて合わせてimmutable.js使ってると
いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから
しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。
結局reducer内で使う時にjsonからimmuatblejsのclassに変換して
state返す時にjsonに戻す処理を毎回入れる方針になった。

immutable.jsは全然typescriptと相性が良くない。
XXX.set(‘member’, value) みたいな構文になるから。
もっとtypescriptで使いやすいimmutableなライブラリないかしら。

778 名前:デフォルトの名無しさん [2017/06/21(水) 16:08:20.66 ID:QjjhDd/n.net]
>>745
新バージョンではXXX.setが型安全になるからもう少し待て
リテラル型とkeyofを使うらしい



779 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 19:23:40.28 ID:CAzvCkNY.net]
https://goo.gl/7Ty7Tq

780 名前:
こんな感じのコードでファイルのアップロード処理を作りたいんですが
上手く動かなくて悩んでいます。 お助け下さい
[]
[ここ壊れてます]

781 名前:デフォルトの名無しさん [2017/06/21(水) 21:09:26.65 ID:nUhsZ0ik.net]
>>747
ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。
https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input

782 名前:デフォルトの名無しさん [2017/06/21(水) 21:50:59.59 ID:nUhsZ0ik.net]
>>745
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

783 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 22:49:52.97 ID:CAzvCkNY.net]
>>748
こちらは結局 イベントリスナーをcickではなくchange にすることで上手く動くようになりました。

>>749
typescriptのジェネリクスの性能いいですね。
結構知らない機能がまだありそう。

784 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 00:17:25.62 ID:u6z6+xvR.net]
>>750
それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw

785 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 17:18:45.24 ID:77+4f1XL.net]
>>751
そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。
https://goo.gl/QHZCsG

before
i.addEventListener(‘click’, async (e) => {
after
i.addEventListener('change', async (e) => {

786 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 18:30:45.28 ID:b2Lz7aux.net]
>>752
たしかのそれもひとつの原因ですね
ですがclickイベントの発火も多分動かないのでは?chブラウザにもよると思いますがchromeで動かなかったですよ

787 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 19:47:44.81 ID:77+4f1XL.net]
>>753
動きましたよ。少なくともchromeでは。動くコードを>>752に貼ったんで

788 名前:デフォルトの名無しさん [2017/06/22(木) 20:06:21.77 ID:u6z6+xvR.net]
>>754
>>752は手動のクリックイベントからclick発火してるので動きますね
>>747はsettimeout内でclick発火してるので、動かないです



789 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 00:04:21.44 ID:7kzB7ca0.net]
typescriptでreduxのミドルウェア書いてる人っていませんか?

export interface Middleware {
<S>(api: MiddlewareAPI<S>): (next: Dispatch<S>) => Dispatch<S>;
}

上記interfaceを満たすコードを書けなくて困ってます。サンプルコード的なのどっかにないですかね?

790 名前:デフォルトの名無しさん [2017/06/25(日) 15:04:59.28 ID:k1gomwYO.net]
reduxってreact関係の何かなのかな?
相変わらずreactの作法は意味不明
流行らずに消えてほしい

791 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 15:18:46.73 ID:dKXT3hQ7.net]
すみません
今パッケージングというのかライブラリのシステムは何を使うのが正解何ですか?
electronやってみようと思ってタイプライブラリをいれようと思っていろいろなサイト見てやってるんですが
どれも失敗します

今の定番の方法を紹介してるサイトってありませんか?
それとも今は時期がまずいんでしょうか?

792 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 16:41:50.61 ID:OCPIhIaN.net]
npm -i @types/XXXX

793 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 17:11:28.11 ID:k1gomwYO.net]
>>758
よくわからないけどelectronのtypescript開発は少しややこしい
メインプロセス側と画面側でプロジェクト分けるのが主流で、メインプロセス側はgulpビルド、画面側はwebpackビルドみたいになって少しややこしい

794 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 19:32:19.06 ID:o1GCb4AX.net]
回答ありがとうございました

もうしばらく待ってみます

795 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 10:42:55.52 ID:B+I0vs4D.net]
>>757
はやっちゃってるんだよなぁ。
React自体は凄くTypeScriptとの親和性は高い。というかむしろ推奨しているくらい。
ただReduxはTypeScriptからどう使えばいいのかよくわからなくて

796 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 15:37:27.06 ID:B+I0vs4D.net]
>>756
自己解決したので書いておきます
ただのロガーの場合

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;
};
}

797 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 16:22:46.76 ID:xkXC4vKS.net]
typescriptで書かれてる有名なライブラリって何があるの?
Rx.jsはtypeScriptで書かれてたね。

798 名前:デフォルトの名無しさん [2017/06/27(火) 16:42:32.21 ID:mpuQzI8/.net]
フレームワークだけどngx



799 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:35:39.52 ID:5NUjqPYf.net]
Dartどっかいったな

800 名前:デフォルトの名無しさん [2017/06/27(火) 19:04:32.75 ID:mpuQzI8/.net]
googleが作る言語はゴミばっかだからしゃーない
言語のセンスは圧倒的にMSの方が上
MSというよりヘルスバーグが有能すぎる

801 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:13:14.24 ID:xkXC4vKS.net]
>>767
goはいいぞ。素朴でモダンという相反する要素を持ち合わせてる。
エコシステムはモダン。
言語仕様は素朴。

802 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:20:02.75 ID:rQeMEWtY.net]
J++とかJ#とかManaged C++とか割と救いようのないものも作ってるけどねMicrosoft
でも全体としては確かに良い言語が多い印象

Googleの言語もGoとか(使ったことないけど)人気みたいだし, そもそも作った言語の数が大分違う気が

803 名前:デフォルトの名無しさん [2017/06/27(火) 23:37:36.64 ID:mpuQzI8/.net]
>>768
ジェネリクス追加されるまでは様子見…

804 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 03:33:15.38 ID:4SuBLGV6.net]
マイクロソフトはvsc出したときはなんでatomの二番煎じやってんのって思ったけどやはり製品としての完成度高くて感動する。
開発環境作らせたら最強と言う噂は伊達じゃない。

805 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 09:12:54.31 ID:9HmGLvwZ.net]
>>764
angular2

806 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:22:19.39 ID:R0ZTQr0d.net]
Announcing TypeScript 2.4
https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/

807 名前:デフォルトの名無しさん [2017/06/28(水) 16:15:00.25 ID:7uiFkJf0.net]
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い

808 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 16:19:23.04 ID:DxMay05+.net]
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い



809 名前:デフォルトの名無しさん [2017/06/28(水) 16:28:12.57 ID:7uiFkJf0.net]
>>775
何こいつ怖い

810 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:13:29.70 ID:f9ij8X2q.net]
すいません。

例えば以下のようにアクションを定義してあったとして

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の内容変更に合わせて自動的に作る方法ってないですかね

811 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:20:59.60 ID:f9ij8X2q.net]
自己解決
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'];


思いの外簡単であった

812 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:26:30.50 ID:gqDySAuG.net]
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に指定は駄目ってことらしい。
上記エラーメッセージからどう読み取ればそういうことなわけ?

813 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 19:20:13.57 ID:lPQJaLkK.net]
template登場したての頃のc++みたいだな

814 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 20:52:57.67 ID:iKt9vtZC.net]
@typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。

815 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 21:44:01.43 ID:46U9BX05.net]
>>781
https://teratail.com/questions/83920

816 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 22:50:59.04 ID:iKt9vtZC.net]
リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで
定義を上書きできるということかな。試してみるわ。ありがとう。

817 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 12:11:08.28 ID:SeGC5rTL.net]
ここでredux-observale薦めてもらったのもあって試してるんだけど
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください

818 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 00:10:59.94 ID:UTvPeefr.net]
VS2017は2015と違ってJavaScriptで
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな



819 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 15:42:06.74 ID:AYnLv9ir.net]
>>783
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもの

820 名前:
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。

となると元々の定義を修正してしまっても不都合はないと思うんだが。

更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
[]
[ここ壊れてます]

821 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 22:07:24.48 ID:Ukk3qL4L.net]
「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件

822 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 02:22:25.78 ID:HJdOjxBV.net]
モジュール拡張書いてる人っていますか?
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなく

823 名前:ネる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
[]
[ここ壊れてます]

824 名前:デフォルトの名無しさん [2017/07/17(月) 09:24:35.44 ID:3rVoB3WX.net]
>>788
jsとd.tsを同じ所に置けばおk
angularとか参考になるよ

825 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 12:07:57.24 ID:HJdOjxBV.net]
>>789
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。

826 名前:デフォルトの名無しさん [2017/07/17(月) 12:30:35.11 ID:3rVoB3WX.net]
>>790
npm rxjsした時のフォルダ構成とビルド結果が同じようにすればおk
もちろんパッケージ.jspnとかもな

827 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 13:43:30.16 ID:9ngnJ+y5.net]
typescriptってユーザー数多そうなのに
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください

828 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:04:36.06 ID:heFqzBlt.net]
typescript は google 社員御用達だぞ
ここのレスも 99 割が google 社員のもの



829 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:14:04.11 ID:9ngnJ+y5.net]
MSとgoogleのマリアージュとか最高じゃないかな。

830 名前:デフォルトの名無しさん [2017/07/20(木) 17:31:24.01.net]
>>792
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…

831 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 20:56:24.88.net]
>>795
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。

832 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:18:51.65 ID:O7VztC89.net]
https://jp.vuejs.org/v2/guide/typescript.html
vuejsもtypescriptとの親和性上がってるのかな。
昔はいまいちだったんだけど

833 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:08:46.09 ID:O7VztC89.net]
typescriptでjest使ってる人っています?
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。

834 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 23:55:24.33 ID:W7NHR4pI.net]
es2015とかes2017はどうかな?
async await使えるの幸せ。

835 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 14:06:03.33 ID:GUb8aQei.net]
さすが俺達のTypeScript

TypeScripts Type System is Turing Complete
https://github.com/Microsoft/TypeScript/issues/14833

836 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 19:19:00.00 ID:WxFDmNeE.net]
>>800
ジェネリグスだけでプログラミングできるってこと?
わけわかめ

837 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 00:27:45.60 ID:LmyTNXHn.net]
ようやくHTML+CSSに追いついたわけだな
https://cpplover.blogspot.com/2013/10/blog-post_20.html

838 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:10:59.59 ID:3DdLvbHE.net]
tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で
こういうエラーが大量に出るようになってしまった。

error TS7016: Could not find a declaration file for module 'モジュール名'.

importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。



839 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:34:41.06 ID:DE4QKP9/.net]
>>803
俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?

840 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:38:02.30 ID:DE4QKP9/.net]
あと使ってるライブラリも。ライブラリによって違うのかな?
俺はreduxとかreactとかm

841 名前:oment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。

一応聞くけどwebpack使ってないよね?
[]
[ここ壊れてます]

842 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:51:37.20 ID:3DdLvbHE.net]
このへんのモジュールが引っ掛かった。全部じゃないけど。

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の設定を間違えているのかな?

843 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:39:16.07 ID:DE4QKP9/.net]
なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない?
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど

844 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:56:35.18 ID:DE4QKP9/.net]
webpackのresolveが抜けてるんじゃない?

resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},

845 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:09:16.06 ID:DE4QKP9/.net]
>react-spin
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。

846 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 18:30:45.13 ID:3DdLvbHE.net]
>>807
noImplicitAny = false なら .d.ts が無くても使えていたんで何か方法はないかと思ったけど、
無いならしょうがないね。ありがとう。

847 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:23:03.92 ID:DE4QKP9/.net]
>>810
いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/material-ui-pagination/index.d.ts
これとか参考になると思う

848 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:49:53.59 ID:3DdLvbHE.net]
最初に書いたとおり、単に数が多いからやってられんてだけ。



849 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:58:06.64 ID:DE4QKP9/.net]
>>812
あーなるほど失礼
もともとjs案件だったってこと?

850 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 21:25:13.43 ID:LJmg41iW.net]
(new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど

851 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 09:46:45.08 ID:yLrj+bDi.net]
o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?

852 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:18:14.33 ID:tN8D0FqC.net]
>>815
無理 any型を使ってる時点でtsにできることは無い

853 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:30:58.84 ID:Yyv6Foyi.net]
>>815
一旦変数に入れてからアクセスすればいいんじゃない

const x = "x";
if (typeof o[x] === "string") { ...

854 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 15:31:46.37 ID:yLrj+bDi.net]
>>817
なるほど、そんな方法が。うまくいったみたい。ありがとう。
使う直前で変数に入れるならdisableにするのとさほど変わらないけど、メンバー名はどこかで
一元管理しておけってことかな。

855 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:11:17.08 ID:tN8D0FqC.net]
>>818
単に変数oにinterface定義してあげればいい

856 名前:セけでは。
そもそもtslintじゃなくてeslint使っているという状況もよくわからない
[]
[ここ壊れてます]

857 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:54:36.31 ID:yLrj+bDi.net]
あぁ、eslintって書いたのはtslintの間違い。

>単に変数oにinterface定義してあげればいいだけでは。

ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。

858 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 23:34:39.69 ID:Yyv6Foyi.net]
>>819
いや静的型チェックと実行時型チェックをごっちゃにしちゃダメでしょ
TypeScriptは静的型チェックを提供するものなんだから実行時型チェックにinterfaceなんて持ち出す道理がない



859 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 11:02:47.05 ID:wX4L2Jep.net]
>>821
そうだったね。ごめん

860 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:13:44.37 ID:/ptFhj0b.net]
TSの環境の開発の旗振りって誰?
いつになったら開発環境が安定するの?

webの情報のほとんどが古くて使えない

861 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:37:14.07 ID:1PU0SC+v.net]
まずVSCodeをインストール
npmでts2.xをインストール
型定義は@types/xxxxxxx

862 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:19:39.56 ID:12Hdps1J.net]
msで作ってるから、まずはmsの開発環境試してみればいいんだろうけど、
大元の実装が不安定だったりするの?
https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview

863 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:23:34.59 ID:YtvD4LeH.net]
TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし

864 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 19:59:00.18 ID:KTb6BBkr.net]
TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。

865 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 20:36:30.14 ID:CbozNT9/.net]
進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ

866 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 02:06:21.27 ID:+9ilYHDI.net]
ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか

https://goo.gl/L6wazS

上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?

867 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 07:45:31.16 ID:HjHZR7Zb.net]
試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。

868 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 09:42:23.66 ID:WV+v2bcZ.net]
コンパイル時に型自体の比較が出来ればいいんだけどねぇ



869 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 12:42:23.60 ID:ai11peC4.net]
型がundefinedって言うのは違うのでは?

変数がundefinedならわかるけど考え方の次元が違う気がする

Add<undefined>(item);ってありえないだろ

870 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:31:01.83 ID:uvmzLTaY.net]
undefinedの型はundefinedだよ

871 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 21:39:57.29 ID:+9ilYHDI.net]
>>832
undefined型、null型あります

872 名前:デフォルトの名無しさん mailto:sage [2017/08/26(土) 04:59:29.39 ID:FZcG7krL.net]
undefined null void never 使い分け出来てる?

873 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:34:52.17 ID:0P4eY3kj.net]
>>830
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。

実は以下のコードが小さくて見やすいので改造できないか試しているんです。
https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts

store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。

store.dispatch(someAsyncAction.started

874 名前:(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。
[]
[ここ壊れてます]

875 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:49:39.35 ID:0iS30aa2.net]
そもそも何がしたいのかわからないんだけど
引数追加したいけないのか?

876 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:55:46.03 ID:0iS30aa2.net]
レス見てなかった
ごめんごめん

877 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:17:00.38 ID:iBnNI7N6.net]
引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。

878 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:23:58.62 ID:0iS30aa2.net]
ところで本当にこれジェネリックの問題?



879 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:27:48.95 ID:wLayuApT.net]
C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる

880 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 17:42:23.47 ID:0P4eY3kj.net]
>>839
もちろんそれならできることは確認してますが、それだったら引数にundefined
許容したほうがいいかなーと。

ジェネリクスは知らないことが色々ありそうなんでもしかしたら解決方法があればと想ったんですが、、、、
typescriptの進化を待ちます、、、。

>>841
c++だとできるんですか。
どう書くのか知りたいです

881 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:19:13.07 ID:wLayuApT.net]
>>842
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ

ttps://ideone.com/6V11EP

C++っぽくないコードだけどとりあえず

882 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:38:06.45 ID:0P4eY3kj.net]
>>843
わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。
でも、ありがとうございました。

883 名前:デフォルトの名無しさん [2017/08/28(月) 18:40:12.12 ID:g1F8jR1j.net]
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,
は指定しています。

何か足りないのでしょうか?

884 名前:デフォルトの名無しさん mailto:sage [2017/08/28(月) 20:16:46.01 ID:3Zs55+dM.net]
>>845
実行環境が書いてないから正確にはわからんのだけど
chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。

885 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:24:22.43 ID:0nj0F5xg.net]
初心者なんだけど質問いいだろうか?

JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる

バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを

886 名前:、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか?
[]
[ここ壊れてます]

887 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:36:04.15 ID:KRZoTQ7y.net]
公式のWhat's newがベスト
差分付き公式アナウンスの日本語訳もあったはず

888 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:14:44.50 ID:0nj0F5xg.net]
>>848
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……



889 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:16:57.33 ID:0nj0F5xg.net]
>>848
なんか完璧ボケたレスした、すまない
読んで公式確認して〜してる間に2行目が頭から抜け落ちてた

日本語訳あるなら探してみるわ

890 名前:デフォルトの名無しさん [2017/08/30(水) 17:22:11.52 ID:t7ExSs7Y.net]
>>847
その用途ならbabel使え
型が欲しい人が使うのがTS

891 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 19:16:11.64 ID:2eRd6qUC.net]
俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。

892 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 23:22:37.02 ID:0nj0F5xg.net]
>>851
型がある方が楽なんで問題ありません。ありがとうございます。
普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。

893 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 10:22:17.60 ID:J0kol7QQ.net]
俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある?
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない

894 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 18:05:56.86 ID:c0+jc73k.net]
>>853
見た目は大事だね

895 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 13:39:42.18 ID:/s9HCfxW.net]
納期ギリギリでリリースしてきたな

896 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 14:35:34.71 ID:gwzO0YnZ.net]
Announcing TypeScript 2.5
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/

897 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 18:09:16.31 ID:NFcRuct1.net]
これリリースする意味あるんか?

898 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 18:55:40.04 ID:/s9HCfxW.net]
やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ



899 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 17:49:25.16 ID:p+zwcdRJ.net]
プロジェクトの管理者が長期休暇で居なかったからな
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ

900 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 17:50:58.84 ID:pn8ujE89.net]
そう聞くとなんかほっこりした

901 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 14:18:22.90 ID:25YGmHNv.net]
Angelar4どう?

902 名前:デフォルトの名無しさん [2017/09/03(日) 16:16:24.17 ID:uF0EtmbD.net]
4はパフォーマンス改善が大きい
あとはifとか
もう9月だから5出るぞ

903 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 09:30:18.55 ID:XPn2hQsA.net]
Angular 2/4が狭量で遅すぎる理由
postd.cc/why-angular-2-4-is-too-little-too-late/

904 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 15:20:15.81 ID:YyUl+V5/.net]
>>864
原文のコメント欄でかなり叩かれてるね

905 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 21:01:59.56 ID:54ysCAWj.net]
自分でTL;DRって書いてあるからそっとしておけばいいのに

906 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 23:02:59.27 ID:WJEd6wUZ.net]
>>863
もうそんな時期か
ネットで探すと2ばっかりで4少ない

907 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 08:07:39.31 ID:JsNUX7wh.net]
>>866
tldrの意味を間違えて解釈してないか?

908 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 08:52:58.29 ID:ZKLFsM4G.net]
https://eow.alc.co.jp/search?q=tldr

TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。



909 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 18:28:14.77 ID:8/JJ3nEQ.net]
○次受けが多いほど退場率が早くなる。高くなる

直受けの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に加入して公表価格で応募できる

910 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 11:15:37.37 ID:/BmvhpgH.net]
jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。
誰か作って

911 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 19:34:43.20 ID:n6fd8Yhd.net]
immutable.js v4まだちゃんと動かんのね。補完効くなら早く使いたい。

912 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 15:23:42.06 ID:ghZl2iPU.net]
TypeScript Deep Dive
https://basarat.gitbooks.io/typescript/
見つけた。読むと幸せになりそう

913 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 03:23:26.68 ID:+Ye2aVjL.net]
更新履歴確認できる?

914 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 18:20:58.44 ID:W51YTaAn.net]
https://blogs.msdn.microsoft.com/typescript/2017/10/02/typescript-turns-5/

Strict function types
https://github.com/Microsoft/TypeScript/pull/18654

五周年!

915 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 18:39:35.95 ID:9EEmWhET.net]
まだ五年しかたってないんだ。

916 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 07 ]
[ここ壊れてます]

917 名前::06:58.86 ID:9dKH0tXT.net mailto: flowは静的解析ツールでtypescriptが言語ってことでいいの? []
[ここ壊れてます]

918 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:16:28.99 ID:3eEbeVt6.net]
flowはゴミだから気にしなくていいよ



919 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 03:03:10.33 ID:kZcMF3GJ.net]
今はTSとほぼ同じ構文が使えるみたいだし推論が強い分言語としてはFlowのほうが格上になったと思うよ
開発ツール等を含めた評価はどうなるか知らんが

920 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 19:56:20.72 ID:n13p9MLl.net]
>>879
対応するライブラリが圧倒的に少ないからflowはゴミだよ
TSと完全互換とかならまだ可能性あったかもね

921 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 06:43:35.33 ID:D9zQ5ULh.net]
最初は俺もゴミかと思ったけど静的解析ツールとしてってことだと
jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。

922 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 08:50:48.19 ID:x7s9E0v1.net]
>>881
TSだって段階的に型を付けられるっしょ。

923 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 22:19:53.51 ID:A+SmlCyw.net]
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#localized-diagnostics-on-the-command-line

typescript 2.6 ローカライズが全面的に入るっぽい

924 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 22:27:47.84 ID:+JNXgfir.net]
非英語Issueが次々と投げ込まれていくところを想像すると胸が熱くなるな
誰がこういうの決定してんだろ

925 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 13:45:26.13 ID:29cWpLj+.net]
いままで入ってなかったのが不思議

926 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 21:03:43.86 ID:U2nzSUai.net]
コマンドラインメッセージが日本語化されるの?いらんだろそれ

927 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 21:27:06.79 ID:nlQ3NzZf.net]
ローカライズありがたいけどところどころ明らかな誤訳が混じってる

928 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 08:15:42.86 ID:eZyML9Cw.net]
誤訳を見つけてくれてありがとう
お前のプルリクを待ってるぜ!



929 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 11:31:48.47 ID:ZoMoe7Af.net]
かえってわかりにくくなる

930 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 12:12:06.22 ID:Z0srHJQs.net]
コマンドラインよりhandbookの方を翻訳してほしいよね

931 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 08:07:20.81 ID:ALnPGbmE.net]
2.4.2から2.5.3に上げたら、User defined type-guard functionとTagged union typeの組み合わせで
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?

932 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 08:10:24.70 ID:1Byit6P4.net]
issueあさりにいけ

933 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 22:10:52.67 ID:wBhwyrKl.net]
TypescriptでReact使ってる人にお聞きしたいんですけど
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか

934 名前:デフォルトの名無しさん [2017/10/18(水) 23:58:41.35 ID:5bsiTMSo.net]
>>893
class CurrentComponet<T extends Props> extends React.Component<T> {
}

935 名前:デフォルトの名無しさん mailto:sage [2017/10/19(木) 09:09:43.33 ID:33xh/nBB.net]
>>894
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。

> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?

936 名前:デフォルトの名無しさん [2017/10/19(木) 20:20:28.20 ID:LXr9z35K.net]
それか
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも

>>895
説明面倒だからggrks

937 名前:デフォルトの名無しさん mailto:sage [2017/10/20(金) 00:43:33.60 ID:aPV4O3Wb.net]
moment.js 便利だな
今更だが

938 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 12:56:00.66 ID:VqKLKVGY.net]
>>896
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する



939 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 05:02:18.10 ID:NdVgkCyx.net]
>>897
イミュータブル好きならこっちやぞ。
https://github.com/date-fns/date-fns

940 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 05:09:40.65 ID:NdVgkCyx.net]
>>871
いろいろあるけどちゃんと探した?
今さら誰かに再発明してもらって↓とかに勝てるの?
https://codesandbox.io

941 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 11:51:56.71 ID:r0jppfs8.net]
>>900
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと

942 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 21:24:20.12 ID:xr09IWoG.net]
地味にawait書き忘れてちゃんと動かないというパターンが多発してるんですが
TSLintでawait入れ漏れで指摘する機能ってないですかね?

943 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 23:05:48.01 ID:zzY32qse.net]
>>902
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね

944 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 07:24:42.96 ID:I1PPVtSx.net]
もう10月終わるけどまた駆け込みリリースかね

945 名前:デフォルトの名無しさん [2017/11/01(水) 02:44:19.40 ID:x/3omok5.net]
Announcing TypeScript 2.6
https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/

946 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 23:51:55.80 ID:x/3omok5.net]
>>905
TypeScript 2.6.1 変更点
https://qiita.com/vvakame/items/d2c7cf142fa0af39d2d5

947 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 12:10:31.71 ID:Gd7lD1Ih.net]
Angular 5.0.0がリリースされました
https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d

はやい、はやいよぉ…

948 名前:デフォルトの名無しさん [2017/11/02(木) 20:11:59.50 ID:eNK4k+UN.net]
ffのアップデート並み



949 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 22:27:03.79 ID:taAN7xor.net]
なお間に合わなかったバグフィクスはガンガン後回しにしてリリースする模様

950 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 03:45:19.14 ID:kJ3ZRkrN.net]
アジャイルってそういうもんだし

951 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 05:18:11.47 ID:IsjJm0uL.net]
>>907
アンギュラーってぶっちゃけ使ってる人いるの?

952 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 07:42:27.47 ID:gwa0lp/v.net]
Google自身が使ってないのにどうして使うというのか

953 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 20:05:35.96 ID:uhXC9xV7.net]
https://html5experts.jp/shumpei-shiraishi/24660/amp/

954 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 02:41:12.23 ID:EwcJ+uHe.net]
2.6になったらコンパイルエラーが多発する。react-redux のconnect周りで。
なんでー

955 名前:デフォルトの名無しさん [2017/11/12(日) 13:16:12.66 ID:oQrEnmVF.net]
MEAN勉強中なのにangulerってマイナーなの?ショック

956 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:21:37.41 ID:UiY7gN7d.net]
コンストラクタを複数定義できないのでしょうか??

うーん。

957 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:28:52.67 ID:UiY7gN7d.net]
オーバーロードはできるけど、実装は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)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。

958 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:37:57.59 ID:UiY7gN7d.net]
ごめんなさい。これじゃ何いってるからんし、意味不明ですね。



959 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:19:08.88 ID:mkIW06Zo.net]
>>916
大分お疲れなようで…… Discriminated Unionsを使うとか?
https://jsbin.com/bequjusaya/1/edit?js,console

960 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 04:33:36.78 ID:Aye3R7gH.net]
オブジェクト指向を学ぼう

961 名前:デフォルトの名無しさん [2017/11/26(日) 23:18:17.65 ID:rkyPHH9I.net]
願望なんだけど
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。

Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
flex.apache.org/

962 名前:デフォルトの名無しさん [2017/11/26(日) 23:25:22.11 ID:pQh5Iwo2.net]
>>921
JSのスーパーセット目指してるんだし無理に決まってんだろ

963 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:28:03.09 ID:rkyPHH9I.net]
すみませんリンク先間違ってました。
royale.codeoscopic.com/

964 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:33:18.08 ID:i1z8rFU6.net]
>>921
TypeScriptでkoa.js使えばいいんでわ?
なんか違うの?

965 名前:920 mailto:sage [2017/11/26(日) 23:51:34.59 ID:rkyPHH9I.net]
>>924
すみませんkoa.jsの存在を知りませんでした。
良さげなので検討してみます。

966 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 19:48:21.81 ID:Qr863YVP.net]
人気沸騰中のはずなのに年々参加者が減っていきついにアドカレ作られすらしなくなったTypeScriptさん

967 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 20:26:25.44 ID:6V2me3Iy.net]
TypeScript関係ないけど、アドカレVue.jsすげぇな。React人気ないのか??

968 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 20:32:35.43 ID:u+SbUYxr.net]
FBのゴタゴタがきいてるんかな



969 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 22:04:45.62 ID:jFvanr8n.net]
アドカレ的にはjs扱いなんじゃね?

970 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:41:41.28 ID:tkoMYkG1.net]
ES6普及したから
AltJSへの興味が薄れてるんじゃね?

971 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:55:12.47 ID:jFvanr8n.net]
まだasync await周りが完成してないけどね。
とりあえずmapとかfilterが普通に使えるようになってほしい

972 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:19:06.97 ID:y5gxd1px.net]
stackblitzいいな。マジでplayground系の決定版感ある。
https://stackblitz.com/edit/react-ts

973 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 16:42:58.78 ID:y5gxd1px.net]
typeScriptのinterfaceで配列の要素数を制約する方法ってありますかね?

974 名前:デフォルトの名無しさん [2017/12/14(木) 19:30:41.65 ID:lO2D+k3i.net]
>>932
vscodeみてーなUIだな

975 名前:デフォルトの名無しさん [2017/12/14(木) 19:31:21.04 ID:lO2D+k3i.net]
>>933
何に使うの?
空でない配列なら分かるけど

976 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:43:58.65 ID:ZmHWuRBr.net]
tupleとして扱う

977 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:36:42.23 ID:LW4O1R2X.net]
tuple使え

978 名前:デフォルトの名無しさん [2017/12/14(木) 22:26:15.12 ID:lO2D+k3i.net]
もしかして:タプル



979 名前:機能を知らない
let vec:[number,number=[1,1];
[]
[ここ壊れてます]

980 名前:デフォルトの名無しさん [2017/12/14(木) 22:27:31.03 ID:lO2D+k3i.net]
ミス
let vec:[number,number]=[1,1];

もちろんこれでもOK
type Vec=[number,number];
let vec:Vec=[number,number];

981 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 22:29:51.71 ID:LW4O1R2X.net]
前にもタプルあるのにタプル欲しい言ってたやついたような

982 名前:デフォルトの名無しさん [2017/12/14(木) 23:16:24.01 ID:lO2D+k3i.net]
https://www.typescriptlang.org/docs/handbook/advanced-types.html

タプルもだけど、このページ読んでない人多くね?
TypeScript語るなら&、|、is、keyofくらいマスターしておけよな

983 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:23:56.02 ID:okgNcKTb.net]
>>938
すっかり忘れとりました。Enumとかも使ってなかった。
>>941
ですよね。

>>934
online vscode と名乗ってる

984 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:29:49.56 ID:sajYuSyc.net]
(´・ω・`) デコレータがなんの役に立つのかわからん…

985 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:12:33.81 ID:ehq3lI3U.net]
一時期使ってみたが全部取っ払って今は一切使ってない
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証

986 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:39:37.56 ID:pWQR70OL.net]
veu

987 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 13:09:01.78 ID:VJqK9zii.net]
使ってないけど、デコレータはDI(dependency injection)(依存性の注入)に使うんでしょ?
そもそもそれが必要な事なのか知らんけど

988 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:08:57.23 ID:ehq3lI3U.net]
DIはコンストラクタ注入だけでいい
メソッドだの継承だのデコレータだの無駄に複雑なだけ



989 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 11:15:39.58 ID:Ab77UDQn.net]
Angularもけっこう深い沼だな…

990 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:02:32.48 ID:c6/WUVVQ.net]
沼というか泥舟

991 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:05:22.54 ID:dnHAQQNy.net]
ionic はタイタニックだしな

992 名前:デフォルトの名無しさん [2017/12/18(月) 13:13:38.64 ID:2IRqztoA.net]
あげ

993 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 20:27:44.97 ID:FhxZLFGY.net]
interfaceを使ってるとjsonでセーブする時にすごく便利なんだけどメソッドが生やせないのが辛い。
なんとかならないかな

994 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 16:20:55.33 ID:AWcujNq7.net]
手動で保存・復元すればOK

995 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 16:23:04.93 ID:AWcujNq7.net]
まぁ、classレベルならいいけど、interfaceレベルだときついかもしれんが。

996 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 18:36:14.16 ID:c8bYFLwE.net]
Announcing TypeScript 2.7 RC
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/

毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う

997 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 05:53:19.16 ID:V1qhcEkf.net]
localStorageとかreduxとか使ってると意図せず型変換が入ってtscはDate型の想定なのに実際はstringという状況マジ勘弁してください。

998 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 08:16:36.90 ID:BFkGLEDk.net]
>tscはDate型の想定なのに実際はstringという状況

そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。



999 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 22:12:47.33 ID:cFDHLCLJ.net]
DateがJSON serializableじゃないって話でTypeScriptの問題でもない

1000 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 11:43:46.31 ID:16WZc9vb.net]
インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか?
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc

1001 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 11:48:46.22 ID:16WZc9vb.net]
>>959
すんません。自己解決
interface IBase {
new (message: string): Base;
}

1002 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 14:06:48.67 ID:16WZc9vb.net]
返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね?
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。

1003 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 16:26:17.34 ID:g7co9PB2.net]
>>960
Baseって何を指すの?

1004 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 10:23:18.30 ID:V9tZNzCA.net]
TypeScriptでglobal import的なものってないですかね?
ロガーを作ったんですけど、それを毎回importするのがしんどくて

1005 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 14:40:42.51 ID:ma2l7eSX.net]
Announcing TypeScript 2.7
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/

1006 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 22:05:36.77 ID:wQgqkVj5.net]
>>964
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

1007 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 23:37:11.09 ID:Rv6TwvHy.net]
Conditional types関連は既にmergedなのか

1008 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 05:58:37.68 ID:vXstL54C.net]
小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡
修正されるまで一回休み



1009 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 05:54:42.41 ID:kAM/OKSF.net]
型を後付した言語の限界があるよな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。

例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。

1010 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 06:47:09.07 ID:a2BGtfue.net]
それは信頼できないjsが悪いだけだろ
外部のクソコードはどうにもならん

1011 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 09:13:05.77 ID:cOH/iFjL.net]
TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる

PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる

1012 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 15:21:25.94 ID:xpZzv5qK.net]
>>970
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。

1013 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 15:22:21.77 ID:xpZzv5qK.net]
blog.yux3.net/entry/2017/06/08/202859
あと objectとObjectがあるって知らなかった。
hyperappの型定義で始めて見た。

1014 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 22:00:08.76 ID:XkJQyT0D.net]
jsから呼ばれる部分はどうやってもチェックしようがないと思うぞ。

1015 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 18:34:14.34 ID:KguAhC0Q.net]
yarnのワークスペースを使用して、Create React AppとCreate React Native App (Expo) で共通のコードを共有する
https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?

1016 名前:デフォルトの名無しさん [2018/02/26(月) 16:47:13.03 ID:Y4Glcgpd.net]
ブラウザで動く個人的なちょっとしたものしか作らなくて、
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?

仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます

1017 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 17:28:19.81 ID:wXoocKSL.net]
.d.tsファイルでインポートすればいいはず

1018 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 19:51:46.67 ID:Y4Glcgpd.net]
いろいろやってみたけど、なかなか上手くいかない。
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)



1019 名前:ってやつに対応した書き方になってなくて、
それに対応するためにexport as namespace hogehoge; が必要だったりするらしい
https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules
[]
[ここ壊れてます]

1020 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 21:54:01.34 ID:0Cvn/PR2.net]
>>975
ちょっと言ってることがわからないからこういうときは小さいサンプルでも作ってどっかにあげてみてくんない?
そしてそうやって小さくまとめてみると意外と自己解決したりするもんだ。

1021 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:16:55.53 ID:Y4Glcgpd.net]
例えば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とか
わけわかりません。

1022 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 01:53:35.35 ID:ZLoGDkNB.net]
>>979
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。

ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。

1023 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 01:59:51.55 ID:ZLoGDkNB.net]
つーかUMD対応中みたいだね
https://github.com/moment/moment/pull/3688

ワークアラウンドとして

import * as _moment from 'moment';
export as namespace moment;
export = _moment;

というd.tsを作ってimportすればいい

1024 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:44:23.84 ID:XDcEi9Sw.net]
import使っちゃった意味ないんだけどね
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む

1025 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:53:20.87 ID:XDcEi9Sw.net]
勘違いしてた
import _moment from 'moment';
export as namespace moment;
export = _moment;
とか、
import _Vue from 'Vue';
export as namespace Vue;
export = _Vue;
みたいに書けばいいのか。
すごい。解決した

1026 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 22:44:29.35 ID:V7eofqS1.net]
次スレカモン

1027 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 23:33:32.22 ID:ZJVFDbUv.net]
TSConf 2018
https://tsconf.io/

初のカンファか

1028 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 08:23:22.72 ID:K5Isy9NI.net]
Announcing TypeScript 2.8 RC
https://blogs.msdn.microsoft.com/typescript/2018/03/15/announcing-typescript-2-8-rc/



1029 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 14:11:16.40 ID:HcB/quXY.net]
>>984
次スレのテンプレに入れたほうがいいものとかある?

1030 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:42:53.78 ID:4Xu/HAYS.net]
tsconfigのexcludeの項目を、compilerOptionsの中に書いてて、何でダメなんだろう悩んじゃった
設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった

1031 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:01:59.42 ID:zUTKt+H5.net]
>>987
リポジトリとかWikiとかWhat'sNewあたり?
あとは流れで

1032 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 08:14:57.22 ID:3iq+90ex.net]
Announcing TypeScript 2.8
https://blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/

1033 名前:デフォルトの名無しさん [2018/04/02(月) 17:52:32.10 ID:G4IZotVZ.net]
俺のtypescriptが好きすぎる感情をどこにぶつけていいかわからない

1034 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:53:21 ]
[ここ壊れてます]

1035 名前:.97 ID:aSG3UjFJ.net mailto: Qiitaでええやろ []
[ここ壊れてます]

1036 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 10:37:57.34 ID:0rmSrban.net]
>>991
俺も俺も!。qiitaでもいいしココでもいいよ!!

1037 名前:デフォルトの名無しさん [2018/04/03(火) 11:33:16.29 ID:R6gDm2yr.net]
次スレよろ

1038 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 19:58:55.32 ID:0c0qrJs0.net]
スレ立てにぶつけることが決まったな



1039 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 07:03:30.59 ID:yIya3QmH.net]
どうしたん?人気あるわりにここ静かやん

1040 名前:デフォルトの名無しさん [2018/04/20(金) 09:50:01.67 ID:WJk0jxxj.net]
続きはCMのあとで!

1041 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 20:06:57.83 ID:TUZ43qB9.net]
はよ次スレ

1042 名前:デフォルトの名無しさん [2018/04/24(火) 21:50:54.24 ID:BAt1Eldp.net]
うむ

1043 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 21:48:57.62 ID:mMDBzDaB.net]

https://mevius.5ch.net/test/read.cgi/tech/1524746903/

1044 名前:デフォルトの名無しさん [2018/04/26(木) 21:52:07.15 ID:vM7mL5EC.net]
safariが次のIEと呼ばれているように、
Typescriptは次のcoffeescriptと言われているwww

1045 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1092日 3時間 14分 38秒

1046 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef