tskai
tsc command 型チェック tsconfig ボトルネック
vscode のオプション tsserver.log
ログが取得され続ける
拡張機能
ypresto 作成 任意のタイミングでタイミングを切り替えられる
trace.jsonの解析
about://tracing perfetto ui
speedscope
zodを使用?
astでの解析 ボトルネック特定
structuredtyperelatedto types.jsonを見る必要がある。
types.json
types.json 型情報がすべて出力されてしまう。 parquet変換?
speedscope便利
typescript
craftbank office
vue2 emitはanyになる
Either<E,A>:例外を可視化
例外で例外を返す必要がない?
toggle holdings
biome:フォーマット/静的解析ツール
モノレポ format/lintをbiomeに移行→肥大化
rust製 フォーマット解析 Prettierとの互換性
typescript graph?
extends...?:biome-vscode? プレリリースから複数のディレクトリ指定
現時点では対応しないルールをオフにしないといけない
別解析ツールからの移行は大変
チームラボ:Art
Solution
alt js - メンテ
事前エラーが起きる、型整合性がとれる。
プレイド
LINE配信 型安全
KARTE Message:
お客さんのウェブサイトにタグを埋め込んで解析、可視化
LINE API 仕様の json を読む jsonが壊れる 型定義を事前にする。
カケハシ:musubi insight
ai 在庫管理 graphql 変化が多いので柔軟に
pharmarket
間のapi通信
tRPC?:規模が小さく フロント バックエンドを一緒に
フルtypescript はやい
アプリ間はrest api シンプルサービス状況に合わせやすい
helpfeel:
シリコンバレー→京都
gyazo
cosense
helpfeel: 地図検索?
newmo
duckdb
データ永続化ではなく、
エリアを編集する 差分表示 おろしてはいけないなどなど
polygon 交差判定
bigqueryとの差
typescriptとの連携
将来的には型を自動出力
table 管理
テストの大変さ
テーブルのデータ変換の可視化の難しさ
リアルタイムではなく、jsonを返す
テーブルが大きすぎる 前段階 圧縮 列選択
.table で中身が見える。
mm
関数
jotai フォーム設計
windowheight型 100から4000の範囲を取る。
windowheight型:Jotai number CM
フォームでvalidation を parseはする。
validate は値が正しいかチェックするだけ
parse 構造的ではないデータを構造的なデータに変換する。
client DB
フィールドを完成させる。
Jotai
windowheight 型にフィールド上で変換
1000が得られるようにする。
syncAtoms() 同期済みのAtomを作る。
フロントエンド側で型安全性を高める。
Jotaiを用いたフォーム設計の実践
jotaiを利用した tryangle 株式会社
AWS CDK ホットスワッピング
バックエンドとフロントエンドのリソースの連携
Sandbox でのCDK
ModelField がフィールドの型
resource.ts でstring()をフィールドに設定
ModelField.ts string()の定義がある。
_field()メソッドを返す。この中でrequire()などのメソッドが定義されている。
ModelField
UsedMethod とrequred のユニオン型を使用する。
ModelType 型 Omitを使って制御。
shema() メソッドのは ModelSchema
bindConfigToSchema()
_ddbSchema()メソッドを呼び出している。
data.types
という流れ
ModelSchema
ModelType
ModelField:string()とか
ClientSchema
InternalClientschemaProperty
T ModelSchema T[K] ModelType RemapModel型
amplify gen2 deep dive
resolveIndivisualField
BaseModelField infer Field<Shape>
タイプ・ヒンティング
ampx yargs
npx ampx
this.backendDeploy.deployer
SandboxSingleton
CDKdeployer
this.tryInvokeCdk
executeCommand
packageManagerController?
Props コンポーネント名変更 保守変更
命名複雑か
Typescript
Definitely Typed
コンパニアオンオブジェクトパターン:typeとコンポーネント名を一緒にする
Typescript
値 ランタイムに影響
型 ランタイムに影響しない
値のモジュール化
型のモジュール化
NavigationButton
import * as Buttonとかにしてする。
Typescriptでライブラリとの依存を限定的に
ライブラリを特定のスコープに閉じる
typiaとは
UIライブラリ:特定のファイル内のみで使用して外から呼ぶ
fetch関数
default値:も再定義
①ライブラリ本来の型を準拠する
②汎用的に
③リポジトリパターン?
デメリット:部品をたくさん作る必要がある。
モック:
subpath imports with Vite
モックファイルにimportを切り替える
tsconfig設定なし
import {} from "#getData";
conditions:["mock"]???
interface 型
:
techtouch
ifame間のinterface
てっくたっち クロスドメイン iframe
通信機能をライブラリとして実装
export type にすると型安全性が失われる
ライブラリ側にどんどん追加しないといけない
interface:
MUI Theming interface
型定義の拡張
interfae MessageMap{
}
一休
serialize:
シリアライズすると、
search
リスト系URLのパターン?
SEO対策:
省略可能なフィールドが多い。
TanStack Queryで prefetch & dehydrate(例外を投げない)
Promise.all???
SearchCriteria 部分型
toUrl
keyword:criteria.keyword,
area:criteria.area
z.string() serialize validator libraryを使用する。zod
valibot??? entry削除する。
prefetch GraphQL variables 不要な値はないが,
構造的部分型と公称型
構造的部分型:typescript
公称型:rust
型の互換性を明示的に定義:
構造的部分型:signature なら互換性
Read(p []byte)(n int,err error) ??
reflection:import scala.reflect.Selectable.reflectiveSelectable
private field を持つclassを持つ classを使う?
brand hack:
testコード
re:type-challenges
mutation test:意図的にバグを植え付けることでテストコードの検証が適切に行われているか?
ガバレッジメトリクス:
a==0 a!==0などに変異する
Killed:変異後、成功すべきやつが失敗
Survived:生き残ってしまったらダメ
stryker:::::
Mutation Report:
失敗すべきテストが成功するとは:
変異しているはずなのにテストが成功する。
遅い:160 minutes
incrementalオプション
GHA:Mutation Testを定期的に実行してレポートを取得
Mutation Scoreがキープできているか?
workload identity gcs
1800行97%
Survived:
hooks
フィードバックサイクル
kanatani
as
anyはダメ as は良い?
コンパイラの挙動を上書き
型について理解している場合は使う?
スコープを最小限に
サブタイプ関係にあるスーパータイプをサブタイプで型アサーションはだめ
型ガード
判別用のプロパティを生やす
インターフェース境界:data as CreateUserParams;
satisfies CreateUserParams 型保証
as T はミュータブルで必要
Literal型パズル
saji
同じキー 日本語 英語で
placeholderのキーを間違えても気づけない
推論して欲しい
Infer 引数を推論
template literal types :union
指定した文字列パターンにおける特定の部分を型として取り出せる
複数の場合はよくない
再帰型
DefinitelyTyped 型定義
古くから使われている型?
kaonabi uhyo
新機能:Right extends number | undefined ? Left : never{ 制約
undifinedでない rust のmatchみたいなのがあれば?