TypeScript part3

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

JavaScript that scales.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.

part1
https://peace.5ch.net/test/read.cgi/tech/1349187527/
part2
https://mevius.5ch.net/test/read.cgi/tech/1430386649/
2019/07/28(日) 16:16:00.92ID:9XfU9Gs7
悪いことは言わんからVSCodeにしとけ
それにTypeScriptはIDEにインストールするもんじゃなく、npmでインストールするただの1ライブラリだ
2019/07/28(日) 19:23:20.85ID:o4KFBn8V
検討してみます。
ありがとう。
2019/07/30(火) 20:33:12.19ID:+pfbQhET
リテラル型からそのリテラルの値を作ることってできないんだっけか。
Record<Foo,boolean>の変数の初期値にReacord<Foo,false>の値が使えたらよかったんだが。
296デフォルトの名無しさん
垢版 |
2019/07/31(水) 01:05:45.62ID:LQAad41F
型情報から実行時インスタンスの値を変更は不可能
2019/07/31(水) 22:29:00.76ID:FZL3ewwl
仕組み考えりゃ当たり前だよな
2019/07/31(水) 22:36:31.70ID:79+NgejT
tsはコンパイル後の結果に型情報は含まないというポリシーだけど、
そういう定数を埋め込むことはやろうと思えばできる話だろ。
2019/08/27(火) 08:04:24.39ID:qSEEAuKd
androidで使えるts用のeditorないかな
トランスパイルとかはメインの環境でやるからコーディングのための入力支援だけでも受けられるようなやつ
2019/08/28(水) 02:28:02.83ID:SJjisg2m
TermuxでVimにプラグイン
2019/08/29(木) 08:30:46.67ID:jM/zWkNe
Announcing TypeScript 3.6
https://devblogs.microsoft.com/typescript/announcing-typescript-3-6/
2019/09/05(木) 23:20:27.31ID:VPhKtGaJ
tslintの"max-classes-per-file"のデフォルト値が1なんだけどこれどういう意味合いがあってこんな制限がかかってるの?
2019/09/05(木) 23:30:25.75ID:Wj2GuKre
Best practice is to keep each file limited to a single responsibility.
2019/09/06(金) 08:25:08.20ID:yVtePnMR
プロジェクトの規模が大きくなっても1ファイル1classって維持できるものなのか?
2019/09/06(金) 14:16:54.22ID:2oSh/AAo
tsファイルに
string型のnormalize('NFC')を
使おうとしたんだけど、エラーになる。

なんで?
2019/09/06(金) 19:54:40.86ID:XEN3PN1i
プロジェクトが大きくなることとひとつのファイルに書くクラスの数が増えることとが結びつかないんだが
2019/09/10(火) 22:41:19.05ID:KQIOq++N
https://geekly.co.jp/column/cat-technology/1908_004/
>TypeScriptはクラスベースオブジェクト指向です。

こんな転職サイトのお世話にはなりたくない
2019/09/10(火) 22:57:35.54ID:bRYQFbtI
これはひどい
2019/09/10(火) 23:33:47.24ID:A1/RuLsT
バズワードに踊らされてるだけなのか、ツッコミどころてんこ盛りなのは置いておいて・・・

Geekly Media ライター
バスコ

最新の記事がXAMPPで草生えた
10年前からタイムスリップしてきたのか?
2019/09/11(水) 10:05:57.98ID:3t6F0b74
>>307
>TypeScriptはクラスベースオブジェクト指向です。
完全に合っているが…何が問題なんだ?
2019/09/11(水) 20:26:00.45ID:P5SVRA88
TypeScriptはクラスベースでJavaScriptはプロトタイプベースって対比しているのは完全におかしい
クラス構文はただの糖衣構文で実態はプロトタイプベースだし、そもそもクラス構文はES2015にあるんだからJavaScriptもクラスベースという話になってしまう
2019/09/11(水) 21:06:44.69ID:IEmfVi5w
JavaScriptをプロトタイプベースのオブジェクト指向言語と言うべきではない
http://blog.anatoo.jp/entry/2015/05/05/163225
2019/09/12(木) 02:40:31.86ID:hFthHt+S
Haskellは最終的に再代入しまくりのCに変換される(出来る)けど、Haskellは純粋な関数型言語と言われている
オブジェクト指向言語の様に書けてその通りに動けば、オブジェクト指向言語と言える
TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
2019/09/12(木) 08:27:51.94ID:ome0ZpEu
オブジェクト指向的な言語機能に関して言えばTypeScriptはJavaScriptと何ら変わりはないんだから
そのHaskellの例は思いっきり的外れというか牽強付会というか。

>TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?

プロトタイプが動作しなくなるなら別だが、仕様をまったく変えないという前提なら何も変わらんだろ。
ところで、こんなこと言い張っていた奴なんて見当たらないが、

>TypeScriptはプロトタイプベース

もしかしてクラスベースを否定したらプロトタイプベースを主張していることにされちゃうんだろうか。
2019/09/12(木) 16:14:58.14ID:y6P0yrLb
TypeScriptはprototypeをいじくるようなコーディングは推奨してないだろ
型システムが破綻する
その時点でプロトタイプとは関係無い単なるオブジェクト指向言語なんだよ
最終的にどう動いてるか何て関係無い
Haskellの様にね
2019/09/14(土) 21:17:37.20ID:1MUQqrBS
いやなんでそんな必死にその糞ガイジ記事を擁護したがるのかわからん
バスコ本人か?
ちゃんと頭のお薬飲めよ
2019/09/18(水) 08:52:01.19ID:F+0EZiKQ
知らなかったが、AssemblyScriptなんてあったのか。
既存のTypeScriptのコードがそのままコンパイルできるわけじゃなくて
文法だけが共通の別言語って感じだが。
318デフォルトの名無しさん
垢版 |
2019/09/18(水) 10:08:51.34ID:L8SHYgAR
Ruby と Elixir みたいなもんか
https://mevius.5ch.net/test/read.cgi/tech/1565187727/
2019/09/18(水) 17:14:10.63ID:reuwXmQ7
ES5以前はともかく、今はPrototypeを意識することは全然ないな
ずっとJavaとかPHPだった人でも違和感なく始められると思う
2019/09/18(水) 17:29:52.16ID:fmefOdth
でまたまにうんこが顔を出す
2019/09/18(水) 19:34:20.09ID:C/YNNC2j
3.7はなかなか楽しみな機能が盛りだくさん
2019/09/18(水) 22:35:58.20ID:bp3ervLV
asserts ええな
pipelineオペあくしろよ
2019/09/19(木) 10:29:52.30ID:Nwlz92FM
Google、モバイル開発環境を加速するFlutter 1.9、プログラミング言語Dart 2.5リリース
https://news.mynavi.jp/article/20190912-893296/

Null安全も開発中だそうだし、そうなったら最強かもしれん
TSあやうし!
2019/09/19(木) 17:24:02.70ID:uX+yZZQn
ksk
2019/09/19(木) 22:29:49.45ID:XUz/FlZ3
>>323
すでにTSはNull安全なんですがそれは
2019/09/19(木) 22:33:00.75ID:Q6kUj/r3
TypeScript 3.7 Iteration Plan
ttps://github.com/microsoft/TypeScript/issues/33352

- Optional Chaining
- Nullish Coalescing
- Assertion Signatures
- Recursive Type References
- ECMAScript Private Fields
- Top-Level await

つよい
2019/09/19(木) 22:50:14.26ID:SwC6FU08
>>326
Microsoftの本気
2019/09/19(木) 23:08:15.80ID:XUz/FlZ3
TSあやうし!  (笑)
329デフォルトの名無しさん
垢版 |
2019/09/29(日) 01:47:49.36ID:DcYKtIGC
>>326
Recursive Type References
こんなん出来るのか?

再帰はanyで逃げてたわ。
330デフォルトの名無しさん
垢版 |
2019/10/04(金) 15:53:59.79ID:JXWhYfPM
ktkr
https://forest.watch.impress.co.jp/docs/news/1210897.html
331デフォルトの名無しさん
垢版 |
2019/10/04(金) 21:06:33.10ID:btlbHhjd
>>330
いや、必要なのはパッチじゃなくて、明示的なdeprecatedだろ。

MSは全ての官公庁に対して、blinkのブラウザーを強制させるべき。

ゴミ政治家じゃ無理なので、MSがやれ。

黒船代行料として10兆払っても惜しくない。
2019/10/06(日) 16:12:20.74ID:GCn9yAhL
Object の OR を自動判別ってできないのかな?
下のURLは、TypeScript Playgroundで書いてみたもの
規制で書き込めなかったから、お手数だが concat して開いてほしい

https://
bit.ly
/30Pw8K3
2019/10/06(日) 16:44:47.50ID:9GzCvGAT
そういうのは、{ type: 'Succeeded'; result: string }と{ type: 'Failed'; message: string } みたいにして、typeで分岐させるのが普通だけど、
if ('result' in resp) {} でもいけるよ
typescriptの型はただの構造でしかないことがわかれば理解できると思う
2019/10/06(日) 17:28:21.59ID:GCn9yAhL
>>333
うおお、できた、ありがとう、感動、感謝、完璧です
2019/10/09(水) 01:40:28.94ID:5li6ycXf
tsconfig.jsonでソースディレクトリの指定は

"include": [
"src/**/*"
]

と "compilerOptions":{
""rootDir": "./src",

のどっちが正しいのですか?
2019/10/09(水) 07:36:48.39ID:ldi65x/b
コンパイルできる方


マジレスすると上
rootDir って要らなくね?
2019/10/26(土) 16:09:48.89ID:z1scFH36
もうeslintに移行しても大丈夫かな?
2019/10/26(土) 16:20:08.49ID:A0XjOFSl
もう3ヶ月前くらいに本番でeslint移行したが、全く問題なくてビビるぞ
2019/11/06(水) 08:31:23.68ID:EkX1LXXs
Announcing TypeScript 3.7
https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/
2019/11/06(水) 08:52:02.60ID:sPTvbp9j
 (  ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    /


きたか…!!

  ( ゚д゚ ) ガタッ
  .r   ヾ
__l_l / ̄ ̄ ̄/_
  \/    /


  ( ゚д゚ ) スッ
_(__つ/ ̄ ̄ ̄/_ 
  \/    / 
341デフォルトの名無しさん
垢版 |
2019/11/06(水) 11:02:39.72ID:o3tEvZiY
1歩進んで2歩さがる
2019/11/08(金) 14:35:13.79ID:vk2bSkbm
Microsoft、組み込みデバイスをターゲットとしたTypeScriptの高速サブセット”Static TypeScript”を発表
https://www.infoq.com/jp/news/2019/11/static-typescript-msft-paper/
2019/11/08(金) 15:41:32.87ID:IHFsmiXW
神ってる
2019/11/08(金) 21:30:00.92ID:tlySiByz
>さらにSTSは、TypeScriptの型規則からも逸脱している。TypeScriptがクラスに構造的型付け(structural typing)を
>使用するのに対して、Static TypeScriptでは名前的型付け(nominal typing)を使用しているのだ。

TypeScriptの人気にあやかった別言語じゃね?
2019/11/09(土) 02:29:33.32ID:NblRK941
結局ただのC言語の亜種だろ
MSもそんな事をいちいちアピールしないといけないほど落ちぶれたか…
2019/11/23(土) 10:38:33.96ID:1aAJfoMg
TypeScriptはJSerへの強制型付けギプスだと思えばそこそこ優秀
いつまでもギプスつけた状態で満足するものではないのでそのうちRustなり別の静的型付けに移行する前提であれば賞賛できる
2019/11/23(土) 10:47:34.10ID:cqseOAmT
TypeScriptはタイプ脳への強制補助輪だと思えばそこそこ優秀
いつまでも補助輪つけた状態で満足するものではないので
そのうち生JSなり別の動的型付けに移行する前提であれば賞賛できる
348デフォルトの名無しさん
垢版 |
2019/11/23(土) 11:57:55.85ID:cBKKqL2b
TypeScriptはタイプ脳への強制補助輪だと思え
ばそこそこ優秀いつまでも補助輪つけた状態で満足するものではないのでそのうち生JSなり別の動的
型付けに移行する前提であれば賞賛できる
2019/11/23(土) 13:06:34.59ID:/aIGpl4m
型無し糞言語は死ねだと思え
動的糞言語はいつまでも糞でそのうち糞
糞糞糞
350デフォルトの名無しさん
垢版 |
2019/11/30(土) 00:23:57.91ID:/MHIrz97
すみません
今までES5.1を使って来て、これから扱い易いと言われる
TypeScriptを学習しようと思うのですが
逆にTypeScriptの方がJavaScriptより
難易度高いと言う事はありませんでしょうか。

型は値に付く物で変数はそれへの参照、
prototypeはファンクションへの参照格納用プロパティ
Objectは可塑性のある便利な何かという感覚が身についています。
2019/11/30(土) 05:04:50.08ID:TrAQa+kD
vscodeといっしょに使えば、jsより楽
型エラーは全てTSが教えてくれる
2019/11/30(土) 08:52:48.62ID:5l2Zf0lZ
>>350
型は値に付くというその感覚はそのままでいいよ。TypeScriptはそれに加えて

- それぞれの変数にどんな型の値が入るかコンパイラが調べてくれる
- それぞれの変数にどんな型の値が入ってほしいかプログラマが指定できる
- その両者に食い違いがないかどうかコンパイラがチェックする

というだけ。
2019/11/30(土) 09:04:25.09ID:6ZWltqHp
TSの機能を余す事なく使おうと思うと難易度高いけど
其処を目指す必要はない
354350
垢版 |
2019/12/01(日) 22:23:36.97ID:THamb1cl
ありがとうございます。
とりあえず tslint を緩めにしてやってみます。
2019/12/02(月) 06:56:16.59ID:mLOeT+PU
TS初心者ですがお勧めの書籍ありませんか?webpackとかも合わせて勉強したいです。
2019/12/04(水) 22:44:25.30ID:sxQF45hm
interface A {
x: string;
}

a: A;

A.xの型(string)を取り出したい場合 typeof A.x じゃダメで typeof a.x ならいけたけど、
aみたいな変数を使わずに typeof A.x 相当のことってできないんだっけ?
2019/12/05(木) 07:17:39.55ID:mSvldXoX
A['x']
2019/12/05(木) 08:56:27.95ID:pFxixMvG
なるほど。ブラケット記法って最近とんと使わなくなったけど、こんなところに使い道残ってたんだ。
359デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:23:23.21ID:BSqycIZI
実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26

今まで、TS の本は、あまり無かったので買ってみた

入門者用の文法の説明が、130ページしかない。
残りの190ページが、各フレームワークへの対応

本屋で、他の本を見たら、
掌田津耶乃は、Node.js, Vue.js, React, Angular の本を出してるw
山田祥寛も、Vue.jsの本を出した
2019/12/21(土) 15:40:03.75ID:BpSzdr8P
vueは根本から型が腐ってるから使う必要なし
2019/12/21(土) 19:32:06.97ID:MnINNRtE
やっぱ React か
2019/12/21(土) 22:14:02.68ID:K0kobvcw
日本人は馬鹿だからしょうがない。
世界的にはreactなのに、世界と同じものでは戦えないからなのか、日本ではvueを使おうとする
363デフォルトの名無しさん
垢版 |
2019/12/24(火) 13:31:33.33ID:WgZ9RMXM
記述がスゲー長くなって見づらい
これって劣化javaみたいな記述にならない?
jsの良さが完全に死亡してる気が…
364359
垢版 |
2019/12/24(火) 13:53:39.03ID:3XzgnZW7
実践TypeScript を読んでるけど、TS の細かい挙動の怪しい所が多いから、
その例外的なルールの数を覚えるのが大変。
つまり、ハマる箇所を避けるのが大変

TS を学ぶと、Haxe の偉大さが分かる!
JavaScript のおかしい部分を修正しているから、かなりやりやすい
2019/12/24(火) 21:47:34.41ID:j2uQerkx
JSに良さなんてあったのか!?びっくりドンキー!
2020/01/04(土) 19:44:33.72ID:pllwqfHK
3.7でECMA private field 使えないんだな。ガチのprivateはお預けかぁ
2020/01/04(土) 19:55:56.50ID:Gwa4LI2s
ECMA private fieldの必要性、全く感じないわ
2020/01/16(木) 00:04:23.72ID:YIQKI70M
ts拡張子のts動画との棲み分けってうまい方法あるかな?
2020/01/17(金) 22:59:25.18ID:c8jQBH00
tsxにする
2020/01/21(火) 10:46:46.65ID:YewYG19G
ts-jestはテストのたびに*.test.tsをTypescriptからJavaScriptにコンパイルしてテストを実行しているのですか?
テストコードが変わらなくても、内部的にコンパイルしてるの?
それとも、tscコマンドでテストコードもコンパイルしてjsファイルに変換したら、それを利用してるの?
2020/01/24(金) 09:42:02.04ID:apHhsOxs
プロパティでyield のやりかたわからん。
get hoge : Generator<number,void,boolean> {
   return (function* (){ yield 1; yield 2; yield 3; })();
}
とかでええの?
なんか get* hoge も *get hoge も get *hoge も怒られる。
2020/01/24(金) 22:27:44.69ID:gpzJLuFb
そもそも getter にジェネレータ記法はない
2020/01/24(金) 23:21:56.15ID:pw14qEqb
getterでそんな複雑なことをするんじゃあない・・・
2020/02/24(月) 18:47:37.01ID:Av6u/PEd
<Ts extends Array>(...args: Ts)=>
でTsの全ての型の交差型を返したいんだけど可能?
2020/02/24(月) 23:10:15.02ID:dJSyQnEN
Typescript: Retrieve element type information from array type - Stack Overflow
https://stackoverflow.com/questions/41253310/typescript-retrieve-element-type-information-from-array-type

Creating types from values in array ・ Issue #28046 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/28046

keyof for arrays ・ Issue #20965 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/20965

この辺どうよ
できたら教えて
2020/03/02(月) 20:34:14.12ID:Vt4u2rjY
締め付けはガチガチなのにガバガバな構文
トランスパイルのせいで起動は遅いし設定項目やハマりポイントはクソ増える
選択肢のないフロントはともかく、言語を選び放題なサーバーでts入れてまでjsを使う意味ってなに?
2020/03/04(水) 19:31:12.74ID:Xkhzo69W
>>376
キツマンなのに誰とでも寝るみたいなん感じか
2020/03/05(木) 00:10:09.52ID:aV1N9imN
型無し言語というジャンルで見ると、一番マシ
379デフォルトの名無しさん
垢版 |
2020/03/07(土) 19:41:25.48ID:Gq72B5Zp
https://github.com/microsoft/vscode-textbuffer/blob/master/src/common/position.ts をC#に書き直してる。
44行目からのwithが分からん。

with(newLineNumber: number = this.lineNumber, newColumn: number = this.column): Position {
if (newLineNumber === this.lineNumber && newColumn === this.column) {
return this;
} else {
return new Position(newLineNumber, newColumn);
}

解説とC#に書き直して。"Create a new postion from this position."ってあるけど、
どう呼ばれるの?もしかしてwith文じゃなくて、with()ってメソッド?
2020/03/07(土) 20:06:50.29ID:74qnesAz
メソッドの定義以外の何に見えるのか
2020/03/07(土) 21:33:39.02ID:po15mmZE
そもそも JavaScript に with 文なんて・・・あるのかよ何だこの邪悪な臭いがプンプンするやべえやつは
2020/03/08(日) 10:00:55.25ID:Dz/wpeTc
>>203
御社は今どういう状況になってる?
2020/03/08(日) 13:25:25.06ID:/+j1E1ja
>>382
何も変わっとらんよ
機能拡張もできないから、現状維持という名の放置
2020/03/08(日) 13:39:52.36ID:Dz/wpeTc
サンクス
2020/04/14(火) 00:16:42.49ID:Rf+yV41A
違い何?

interface Dictionary<T> { [key: string]: T; }

type Dictionary<T> = { [key: string]: T; };
2020/04/14(火) 00:52:31.86ID:1s8555QT
そのコードに限っては、違いないかもな

interface は後から追加できる
これ playground にでも貼ってみ

```
interface DictionaryI {
a: string
b: string
}

type DictionaryT = {
a: string
b: string
};

interface DictionaryI {
wow: number
}

type DictionaryT {
wow: number
}

const di: DictionaryI = ({} as any)
console.log(di.wow)
```

だから、ライブラリの定義ではたまに使われる
プロダクトコードで使ってる奴は物知らないか、設計力のないやつ
2020/04/14(火) 08:03:12.85ID:KwYjFqSp
>物知らないか、設計力のないやつ
どうして?
2020/04/14(火) 08:24:49.93ID:NW9baKp2
>>386
ケツにIとかTを付けるのは設計力の無いやつ
2020/04/14(火) 08:34:25.44ID:1s8555QT
>>388
ただのサンプルコードにそんなこと言われてもwww

>>387
以下理由
・昔デフォルトONだったprefer-interfaceを引きずっている
・自分で管理できるコードなのに、interfaceで拡張する余地を残さねばならないのはおかしい
2020/04/14(火) 08:54:36.47ID:NW9baKp2
>>389
> ・自分で管理できるコードなのに、interfaceで拡張する余地を残さねばならないのはおかしい
オブジェクト指向を全否定かよw
2020/04/14(火) 10:13:18.16ID:1s8555QT
>>390
たぶん君は、Java の implements に使える interface のことを言ってるのだと思うが、
type でも implements 相当の宣言ができるので、
TS の interface は src 変更が容易でないが、ライブラリの性質上拡張の余地が必要なケースでしか有効でない

「同じ名前の型なのに、実は後から src のどこかで拡張されてました」なんて嫌だろう?
どこの JavaScript だよ
2020/04/14(火) 18:14:19.90ID:Rf+yV41A
>>386
なるほど
ありがと
393デフォルトの名無しさん
垢版 |
2020/04/26(日) 04:53:02.63ID:IAt9cGuZ
function hoge<T, S> (x: T, f: (x: T) => S) {
// ...
}
みたいな関数があって、引数f のデフォルト値を identity:<T>(x: T) => T
にしたいんだけど、無理かしら?

hoge(1) <-- このときは T: number, S: number と推論してほしくて、
hoge(1, n => `number: ${n}`) <-- このときはT: number, S: string と推論してほしい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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