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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2015/04/30(木) 18:37:29.98ID:ynMflk1l
http://www.typescriptlang.org/

TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.

前スレ
http://peace.2ch.net/test/read.cgi/tech/1349187527/
2016/11/01(火) 01:26:11.04ID:R4cGftBs
永続化や通信でシリアライズが必要ならまず構成と通信内容を決めて
実装可能であることを確認してから個々の実装に入るべきだった
行きあたりばったりで通信が必要なデータやコマンドが噴出してるだろうから
個別機能に逃げずに先にそこを設計しろ
2016/11/01(火) 03:17:05.88ID:ZbjdSYd3
>>501
普通にobjectを渡せるんじゃないか?
2016/11/09(水) 22:55:56.80ID:w82iFkDp
React Componentを相対パスでimportするのはもう嫌なので、絶対パスでimportしてやる
http://qiita.com/endam/items/49696abedb68878d8b01
コレいいなって思ったんですがTypeScriptで絶対パス指定する方法って標準であったりしないですかね?
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/
2016/11/10(木) 03:11:40.39ID:XJYCbDSV
モジュール周りはここに書いてあるようだ。
https://www.typescriptlang.org/docs/handbook/module-resolution.html
507デフォルトの名無しさん
垢版 |
2016/11/12(土) 00:03:42.69ID:0EI9e+TE
>>505
TypeScript 2.1.1 変更点
http://qiita.com/vvakame/items/305749d3d6dc6bf877c6
508デフォルトの名無しさん
垢版 |
2016/11/16(水) 13:26:15.81ID:VglaLP8t
bucklescript ω
2016/11/20(日) 01:23:41.33ID:PZEuAd0p
みんなエディタは何使ってるの? VisualStudio以外にいいエディタある?
2016/11/20(日) 08:29:21.81ID:p95gh/Vn
vscode
2016/11/20(日) 09:20:47.29ID:mNZMIvsS
vim
2016/11/20(日) 09:40:13.46ID:0ByPx+DX
Emacs
http://www.typescriptlang.org/
の下の方にEmacsのTypeScript開発環境へのリンクがある。メソッド補完とかリファクタリングとか全部出来る
2016/11/20(日) 16:06:26.39ID:rN9nZaoB
>>509
ALM
http://alm.tools/

好きが高じてエディタまで作ってしまった例
2016/11/20(日) 17:44:23.07ID:Y8tBh63Q
>>513
+1
2016/11/24(木) 16:16:50.02ID:Kbd9UGgc
ALM 使ってみたけど、JIS キーボードで CTRL+¥ が効かなくてツリービューが出ない…
ファイル操作はツリービューでやるんだよね?
2016/11/25(金) 11:07:12.84ID:lg4MxwBZ
>>513
本家のプレイグラウンドも楽しいけど、ちょっと他のライブラリとか合わせられるようなのもほしい。 こういうのと組み合わせて作ってくんないかなー。
2016/12/01(木) 23:31:35.77ID:V3pVktwk
TypeScript Advent Calendar 2016
http://qiita.com/advent-calendar/2016/typescript

(今年も)やっちまった感
2016/12/02(金) 15:42:21.41ID:ocojT6FV
需要なしか
2016/12/02(金) 21:48:15.76ID:i9Hqboy9
12月突入数時間前まで誰も立てなかったしそりゃね
2016/12/03(土) 16:07:27.97ID:iU+ignEA
いつも納期を守らないひとですねわかります
2016/12/03(土) 22:27:39.83ID:W5YxFMDl
TypeScript 2.1のkeyofとかMapped typesがアツい
http://qiita.com/Quramy/items/e27a7756170d06bef22a

そろそろ2.1正式版来る気配
2016/12/05(月) 08:39:36.02ID:vZnFdVec
人気ないでしょ。
2016/12/05(月) 09:21:11.08ID:nuFcVUYF
英語圏はどうなのよ
2016/12/05(月) 16:49:11.01ID:5hp1IXjD
>>521
パスやファイル名に日本語が有ると
エラーする問題はこれで直るのか?
2016/12/05(月) 17:57:33.20ID:dF177W8B
>>519
Tcl/Tkの誰か立ててよ
2016/12/08(木) 07:43:57.58ID:sRPpwh3/
https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/
「...」系の構文が増えるといいなぁ
最近のC++に追加された構文が便利だから
2016/12/08(木) 14:41:29.32ID:K4A6J/m6
しかしkeyofとかTypeScriptスゲーな
型言語としてやれる事はとことんやろうという方針なんだな
keyofは既存のJavaScriptコードと連携する時にコーディングミスをコンパイル時に分かるようになるって事かな
TypeScriptオンリーの時は多分使いそうにないけど、何か使いどころがあるんだろうか?
2016/12/08(木) 14:49:41.32ID:K4A6J/m6
と思ったらMapped Typesでkeyofが必要だったんだな。納得した。
Mapped Typesは使いどころを模索中…
2016/12/08(木) 23:29:45.09ID:/aGxLpEu
ちょっと手段が目的化してる感が否めないなあ
最初からTypeScript前提で作ったモジュールを使う分にはkeyofが必要な状況はそう無いだろうし、
既存のJSライブラリのインターフェース書くための機能だと割り切るんだったら
そこまで厳格にDRYに拘る必要もないように思うが
2016/12/09(金) 08:58:45.48ID:zMqsgGKG
・interface を readonly の有無で2回書かなくて良い
・エレメントに設定する一連の属性をオブジェクトで渡す際の型安全
ぱっと思いつくだけでも悪くない機能だと思うけど
2016/12/10(土) 08:55:22.73ID:ZQIWZdV9
classのコンストラクタを定義する場合、もしメンバ変数が20個あるとすると、
コンストラクタにも20個の引数を並べて、
constructor(arg1, arg2, ......, arg20){
 this.parm1 = arg1;
 this.parm2 = arg2;
 this.parm3 = arg3;
 ..
}
のようにする必要がありますか?
もう少し簡素に書けませんか?
2016/12/10(土) 10:13:56.45ID:yQhPHczS
constructor(public parm1, private parm2) {
2016/12/10(土) 13:08:54.64ID:ZQIWZdV9
>>532
そんな技が有ったのですか!
ありがとうございました。
2016/12/16(金) 22:23:17.99ID:Za7bRyyh
型システムがチューリング完全になっててもおかしくないな
たしか scala と c++ は達成してた筈
2016/12/16(金) 22:39:54.50ID:lf6NCS1E
C++はtemplateでしょ
template引数の扱いがほぼ帰納関数の定義みたいなもんだしな
2016/12/16(金) 22:40:27.11ID:oD0nT6zl
TypeScriptの型はあくまで検査専用でメタプログラミングには使えないから無理じゃない?
2016/12/16(金) 23:19:39.50ID:hVjcwv5q
C++のテンプレートがチューリング完全だとしても文字列のハッシュ値は計算出来ない
なぜならC++の文字列はポインタでしかないけどコンパイル前に参照する事が出来ないから
それでもチューリング完全なのは間違いないけど、別にチューリング完全だからってなんでも出来るわけじゃないってことだな
2016/12/16(金) 23:21:43.20ID:hVjcwv5q
ちなみに文字列じゃなくて文字の配列にすれば問題ない
const char* str = "hoge";じゃなくて
const char str[] = { 'h', 'o', 'g', 'e' };ってこと
2016/12/16(金) 23:24:42.09ID:hVjcwv5q
間違えた…
const char str[] = { 'h', 'o', 'g', 'e', '\0' };
だった
連投ごめんなさい
2016/12/16(金) 23:29:20.71ID:lf6NCS1E
ゲーデル「そこはゲーデル数で…」
2016/12/16(金) 23:34:58.93ID:ZvALx4tK
ゲーデルはホント天才だよな
紙と手廻し計算機しかない時代に
「符号化すれば数式だろうが証明図だろうが数で表せるし
数の計算が数式処理や証明じゃん」なんて
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文の有無で見つからなくなるのはとても不思議な感があるんだけど
2016/12/18(日) 15:52:58.94ID:gkl2dVgP
内部モジュール形式と外部があって内部だとネームスペースはすべて同じものとしてマージされるから参照できる
内部ゴミだから外部覚えろ
2016/12/19(月) 20:40:04.16ID:tHwvluTB
reference pathは使わないことを勧める
型定義ファイルの参照はreference typesや--types
連結するなら目的別にプロジェクトを分けて--outFile
546543
垢版 |
2016/12/19(月) 23:08:19.83ID:WEeYyWf0
結局外部モジュール化して解決しました
細かいことは組んでからコンパイル済みソース見て考えることにします
2017/01/19(木) 09:39:46.00ID:uhfgjGGl
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
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 - 無名クラスを返す関数のサポート
2017/02/03(金) 11:53:48.71ID:OZdxyk8U
>>548
rcかあ
入れるのはやめとくわ
2017/02/13(月) 21:38:00.71ID:g48+zfGw
typescript版のjsFiddleみたいなのないですかね?
551デフォルトの名無しさん
垢版 |
2017/02/13(月) 21:52:46.81ID:XAOuYKtl
>>550
https://jsfiddle.net
typescript選べるんだけど、何がお望み?
2017/02/14(火) 08:03:16.30ID:06xiI2rQ
>>551
補完が効かないとtypescriptの意味ないよね。
2017/02/14(火) 22:01:13.41ID:PJNUS5QV
なぜ TypeScript の型システムが健全性を諦めているか
http://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
2017/02/15(水) 11:35:44.90ID:Uv6dN9fe
typescriptでvue.js使ってる人っています?
どんな感じか聞いてもいいですか?
vueファイルのscriptにtypescriptを使った場合にVisualStudioCodeから補完聞かせる方法ってあるんですかね?
2017/02/15(水) 13:37:43.12ID:0zPxl8zN
いいよ
あるよ
2017/02/16(木) 14:34:53.75ID:I/Biy33K
typescript ってclassの中でclassは定義できないの?
2017/02/16(木) 16:54:40.22ID:H/kSQGez
>>556
innerClass = class { ... } の構文を使ってみては?
2017/02/16(木) 18:23:19.49ID:I/Biy33K
>>557
さんきゅう。
その後、自分でも調べてそういう構文を見付けたのだが、
なぜ一般的な言語のようにclassをネスト出来ないのかな?
2017/02/17(金) 10:02:26.32ID:XBlUtmng
構造的にESにないものは採用されないんじゃなかろうか
俺もprivate static Inner = class {...で試したけどあまり使えなさそうだからやめた
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
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は指定しているのですが、他にも何か記述が必要ですか?
2017/03/19(日) 02:18:51.51ID:9qStAS/N
>>561
そもそも今は/// <reference path=みたいな書き方はしない。
@types/XX npm install すれば使えるはず。
2017/03/19(日) 02:40:46.59ID:/2pY/ZTT
インストしても明示的なインポートなしには使えんよ
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= />なくてもコンパイル通りました

皆様お騒がせしました
2017/03/19(日) 13:25:11.81ID:9qStAS/N
>>565
エディター何使ってんの?
typescriptなら書いてるそばから検出できるエラーじゃないのか?
567デフォルトの名無しさん
垢版 |
2017/03/28(火) 10:03:39.39ID:r9lg9pov
ターゲットにWebAssemblyを追加する計画とか無いのかな
2017/03/28(火) 14:44:15.57ID:3EkUFmFA
interfaceの定義でArrayの要素が2つしかない場合の定義の仕方ってあるかな

interface Pair {
number[2]
}

interface Data {
pairs :Pair[]
}

みたいな感じで定義できないもんか。
諦めてnumber[]にするしかない?
2017/03/28(火) 14:54:23.37ID:OG3qmdJs
タプル使え
2017/03/28(火) 17:30:18.19ID:3EkUFmFA
>>569
thanks

type Pair = [number,number]
interface Data {
pairs :Pair[]
}
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 ってなんすか?
2017/03/31(金) 01:47:51.53ID:y+1gOmlP
そのモジュールのグローバル変数化宣言
公式wiki嫁
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型のようです。
どう書くのが正解でしょうか?
2017/04/01(土) 22:04:14.42ID:es45r1Ne
>>573
すいません。自己解決しました。
JSのモジュールまじしんどい
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
2017/04/10(月) 14:18:00.18ID:BK5DCjs2
Google社内の標準言語としてTypeScriptが承認される。ng-conf 2017
http://www.publickey1.jp/blog/17/googletypescriptng-conf_2017.html
2017/04/10(月) 18:26:24.79ID:VEGABUso
>>576
Dartどうすんだよ
2017/04/10(月) 20:28:20.75ID:kMiVc4KU
劣るうえ、使われてないdartは自動消滅。
ホントはわかってたこと。
2017/04/11(火) 02:02:21.52ID:Kcnbnd8w
typescriptでreduxの実装書くのしんどいね

http://qiita.com/wadahiro/items/7c421b668f28a99e2a29
こいつを参考に書いてるけど。他にいい書き方があれば
2017/04/11(火) 07:02:04.43ID:OeT6CnRN
>>579
おまおれ

mapStateToPropsとかの引数も型どうしていいか分からん
2017/04/11(火) 17:04:01.31ID:ejHOB/DU
>>579
こんなの誰が何に使うの?
2017/04/11(火) 19:22:39.80ID:+8we66Ry
ほんそれ
2017/04/11(火) 22:09:52.06ID:rpuwd/d9
TypeScriptでreact-router-reduxに手を出したら大変な目に遭った。
2017/04/11(火) 22:24:37.23ID:YJpuA+WP
単語が3つ以上入ってるパッケージに近寄りたくない
585デフォルトの名無しさん
垢版 |
2017/04/12(水) 19:01:00.44ID:BxTB0mZM
>>576,577
もうjavaやめてtypescriptでandroidアプリ開発できるようにしてほしい。
でも本心はdart頑張れ。
586デフォルトの名無しさん
垢版 |
2017/04/12(水) 19:19:27.95ID:usx2Dq45
そういうフレームワーク色々あるやん
2017/04/12(水) 20:26:06.76ID:IsZRv2xh
>>579
これの2.0/2.1用ってのをやってみたら#defineが欲しくなった。
ストリングリテラルを置き換えられるマクロみたいなものってないのかな?
588デフォルトの名無しさん
垢版 |
2017/04/12(水) 20:47:03.00ID:usx2Dq45
>>587
何が欲しいのかよく解らんが
const ABC=”str”
じゃあかんのか?
2017/04/12(水) 20:56:38.51ID:IsZRv2xh
そのABCはストリングリテラル型には使えんわけよ。
2017/04/12(水) 21:04:32.60ID:WRJ4LE6o
redux の冗長な書き方をtypescriptの機能でなんとかしてほしいってことなんだろうけど。
react見たくpropsをinterface定義すれば大体いい感じで使える。みたいにredux の方もstateのinterface定義だけでいい感じに出来上がるような仕組みがほしい。
2017/04/12(水) 21:05:36.55ID:WRJ4LE6o
>>585
つreact native
592デフォルトの名無しさん
垢版 |
2017/04/12(水) 22:41:00.77ID:mYXXp/Z3
>>589
const ABC:"str" = "str";
こういうことか
2017/04/12(水) 23:07:35.91ID:IsZRv2xh
それ。
strが短いならそのまま書いても一緒だけど、actionのtypeって長くなりがちだから
二重に書くのがつらい。
2017/04/12(水) 23:08:47.06ID:0/0fFwi6
>>577
TypeScriptが標準言語になっても、Dartのことは忘れてませんよとGoogle担当者がフォロー
http://www.publickey1.jp/blog/17/typescriptdartgoogle.html
2017/04/12(水) 23:50:07.42ID:29ufoOq3
constは型書かなくてもストリングリテラルに推論されるようになったんだが存知ない?
596デフォルトの名無しさん
垢版 |
2017/04/13(木) 00:12:31.67ID:IFJ42qsr
2.1からだね。2.0でも使ってたんだろうか
2017/04/13(木) 00:19:44.83ID:rVYtPk7E
ストリングリテラルに推論されるって?
これ通らないでしょ?

const STR = "str";
const ABC: STR = STR;
598デフォルトの名無しさん
垢版 |
2017/04/13(木) 00:27:33.33ID:IFJ42qsr
>>597
そりゃ二行目がストリングリテラルじゃないからね
2017/04/13(木) 00:33:01.65ID:rVYtPk7E
だからそれが書けないから>>593だってことだろ。
結局>>595は何の話をしてたんだ?
600デフォルトの名無しさん
垢版 |
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;
全部通るよ
2017/04/13(木) 00:39:19.82ID:7ydi5nIB
>>599
エラーメッセージも読めない奴がずいぶんと偉そうだな
ドキュメント100回読み直してこい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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